WebClient - 远程服务器返回一个错误:(403)禁止
问题描述:
从浏览器打开公共页面正常工作。WebClient - 远程服务器返回一个错误:(403)禁止
使用WebClient下载相同页面抛出 - (403)禁止。
这是怎么回事?
这里被快速复制/粘贴例子(控制台应用程序使用的)特定页面的网页:
try
{
WebClient webClient = new WebClient();
string content = webClient.DownloadString("http://he.wikisource.org/wiki/%D7%A9%D7%95%D7%9C%D7%97%D7%9F_%D7%A2%D7%A8%D7%95%D7%9A_%D7%90%D7%95%D7%A8%D7%97_%D7%97%D7%99%D7%99%D7%9D_%D7%90_%D7%90");
}
catch (Exception ex)
{
throw;
}
答
我只是跑提琴手看到响应尝试过了,它返回用以下通知状态码。
Scripts should use an informative User-Agent string with contact information, or they may be IP-blocked without notice.
This works。
WebClient webClient = new WebClient();
webClient.Headers.Add("user-agent", "Only a test!");
string content = webClient.DownloadString("http://he.wikisource.org/wiki/%D7%A9%D7%95%D7%9C%D7%97%D7%9F_%D7%A2%D7%A8%D7%95%D7%9A_%D7%90%D7%95%D7%A8%D7%97_%D7%97%D7%99%D7%99%D7%9D_%D7%90_%D7%90");
你多久打一次电话这个网址?你可能会受到限制。 – Nix 2010-05-08 13:37:26
我觉得并不多,在尝试使用webclient之前,浏览器中的次数并不多。我现在已经从同一个网站上下载了更多的网页,并且每次都很好。所以它看起来像这个页面只是抛出错误?! – dzolnjan 2010-05-08 13:45:08
该页面可能正在查看用户代理标题,并且因为您没有提供它而弹跳。 – 2010-05-08 13:59:28