我的C#代码有点问题,我不确定如何处理它。我试图DownloadString一个网页,只有登录的人可以看到(否则它返回403响应)。所以我认为最好的方法是将HTTP标头cookie值设置为登录用户的值。不幸的是它没有奏效。这是代码片段:
WebClient web = new WebClient();
web.Headers[HttpRequestHeader.Accept] = "*/*";
web.Headers[HttpRequestHeader.Cookie] = "User cookie";
string pagecontent = web.DownloadString("Forbidden page");
使用代码时,我仍然会收到403错误。我肯定使用工作cookie,我测试过它。可能出现什么问题?
除此之外,我如何从webBrowser中获取cookie并将webclient HTTP cookie标头设置为?
答案 0 :(得分:0)
以下方法不使用WebClient
类,但它可以工作:
string domain = ...
string url = ...
Cookie cookie = ...
var request = (HttpWebRequest)WebRequest.Create(url);
request.CookieContainer = new CookieContainer();
request.CookieContainer.Add(domain, cookie);
using (var response = request.GetResponse())
using (var reader = new StreamReader(response.GetResponseStream()))
{
var responseValue = reader.ReadToEnd();
}