2009-12-03 17 views
2

我嘗試刪除頁面這樣的:刪除(鏈接到MediaWiki)頁用C#(HTTP POST)

WebClient wClient = new WebClient(); 
wClient.UploadStringCompleted += new UploadStringCompletedEventHandler(client_UploadStringCompleted); 

string str_post = "action=delete" + "&title=Vorlage:" + str_zuloeschendeVorlage + "&token=" + str_token + "%2B%5C"; 
wClient.UploadStringAsync(new Uri(@"http://localhost/mediawiki/api.php"), "POST", str_post); 

的令牌是沒有問題的(我有一個正確的)。我以管理員身份登錄。回調client_UploadStringCompleted被稱爲正確的(具有正確的連接)。沒有錯誤代碼返回(來自api)。結果就是來自api.php的代碼(沒有錯誤代碼)。但該網站仍在那裏。我認爲uri或str_post是錯誤的。

請幫忙!

回答

0

爲什麼你追加「%2B%25C」到你的查詢字符串?它轉換爲「\」(空格 - 反斜槓),這很奇怪,因爲它將成爲收到的令牌的一部分。

嘗試發出沒有這些噪音字符的POST請求。

+0

感謝您的快速答覆。 「+ \」必須是令牌的一部分....(MediaWiki/api.php) 我試過了,但沒有解決問題:/ – Alex 2009-12-03 12:29:12

2

我發現這個問題...

頁眉信息缺失:

WebClient wClient = new WebClient(); 
wClient.Headers["Content-Type"] = "application/x-www-form-urlencoded"; 
wClient.UploadStringCompleted += new UploadStringCompletedEventHandler(client_UploadStringCompleted); 

的代碼的其餘部分是正確的