设置HTTP标头以从仅限成员的网页检索数据

时间:2012-10-21 02:30:49

标签: c# http-headers webclient

我的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标头设置为?

1 个答案:

答案 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();
}