0

我的 C# 代码有点问题,我不知道如何解决它。我试图下载一个只有登录的人才能看到的网页(否则它会返回 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 标头设置为那个?

4

1 回答 1

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();
}
于 2012-10-21T02:44:56.317 回答