大家好我在使用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来执行此操作。
答案 0 :(得分:3)
您需要创建CookieContainer
并将其分配给Web请求,例如:
var cc = new CookieContainer();
var request = WebRequest.Create("http://.../");
request.CookieContainer = cc;
您需要为所有请求传入相同的容器,以便共享正确的Cookie并设置正确的会话。
MSDN上有一个博客here进一步讨论了这个问题,并提供了一个更大的示例集。