0
我試圖編寫一個應用程序連接到一個網站,而不是垃圾郵件發送者,但有些事情是這樣的。使用webclient保持會話活着
但有一個問題:
在該網站,您將通過HTML表單登錄,我知道自己的目標PHP頁面和參數,以便使用C#我登錄這樣的:
using (WebClient wc = new WebClient())
{
wc.Headers[HttpRequestHeader.ContentType] = "application/x-www-urlencoded";
wc.UploadString("http://example.com/login/check.php", "username=US&password=PW");
MessageBox.Show(result);
}
logining後在我想要(例如)發送帖子時(如下面的代碼),答案是您沒有被吸引!
using (WebClient wc = new WebClient())
{
wc.Headers[HttpRequestHeader.ContentType] = "application/x-www-urlencoded";
wc.UploadString("http://example.com/post/send.php", "title=T&body=B");
MessageBox.Show(result);
}
我認爲問題在於會話已關閉。 我該怎麼辦?
服務器如何跟蹤認證用戶?如果對原始登錄的響應包含一個cookie,那麼您需要將該cookie保存在您的代碼中,並在以後的請求中使用它。 – David 2015-03-13 14:43:02
它使用會話(通常使用cookie)。我如何在我的代碼中使用cookie? – 2015-03-13 14:49:52
我不確定WebClient對象是否具有您需要的操作,您可能需要在文檔中查找。從本質上講,您需要能夠創建一個HTTP請求,該請求具有更豐富的響應,而不僅僅是一個字符串。該響應將包含cookie,頭文件等。然後,您需要在之後創建更豐富的HTTP請求(再次,不僅僅是上傳字符串),因爲您需要在這些請求中包含cookie和頭文件。也許'HttpClient'?也許'WebRequest'? – David 2015-03-13 14:55:18