在 c# 中使用 WebRequest 和 WebResponse 类登录

本文关键字:WebResponse 登录 WebRequest | 更新日期: 2023-09-27 18:28:49

大家好,我在使用 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 访问该网站的其他页面。我想使用 WebRequest 和 WebResponse 来执行此操作。

在 c# 中使用 WebRequest 和 WebResponse 类登录

您需要

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

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

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

这里有一个关于 MSDN 的博客,进一步讨论了这个问题,并提供了一个更大的示例集。