3

大家好,我在使用 webRequest 和 WebResponse 登录网站时遇到问题。我想让我通过发布问题与专家联系。我正在尝试登录http://www.mbhatt.in并希望在登录成功后访问该页面。我使用以下代码来做到这一点。但不知何故失败了

string poststring = string.Format("Username={0}&Password={1}", Username, Password);
byte[] postdata = Encoding.UTF8.GetBytes(poststring);
HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(url);
webRequest.Method = "POST";
webRequest.ContentType = "application/x-www-form-urlencoded";
webRequest.ContentLength = postdata.Length;
webRequest.Credentials = new NetworkCredential(Username, Password);
Stream writer = webRequest.GetRequestStream();
writer.Write(postdata, 0, postdata.Length);
HttpWebResponse webResponse = (HttpWebResponse)webRequest.GetResponse();
cookies.Add(webResponse.Cookies);

当cookie被添加到我的浏览器时,我不知道该怎么办。登录后如何使用此 cookie 访问该网站的其他页面。我想使用 WebRequest 和 WebResponse 执行此操作。

4

1 回答 1

3

您需要创建一个CookieContainer并将其分配给 Web 请求,例如:

var cc = new CookieContainer();
var request = WebRequest.Create("http://.../");

request.CookieContainer = cc;

您需要为所有请求传递同一个容器,以便共享正确的 cookie 并设置正确的会话。

MSDN 上的博客在这里进一步讨论了这一点并提供了更大的示例集。

于 2013-08-23T10:25:36.513 回答