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