c# - WebClient - 远程服务器返回错误 : (403) Forbidden

标签 c# webclient

从浏览器打开公共(public)页面工作正常。

使用 WebClient 下载同一页面会抛出 - (403) Forbidden。

这是怎么回事?

这是快速复制/粘贴示例(用于控制台应用程序)到网络上的特定页面:

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;
}

最佳答案

我刚刚在运行 Fiddler 的情况下尝试查看响应,它返回以下带有状态代码的通知。

Scripts should use an informative User-Agent string with contact information, or they may be IP-blocked without notice.

这有效。

    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");

关于c# - WebClient - 远程服务器返回错误 : (403) Forbidden,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2794260/

相关文章:

c# - 从网站下载文件,没有特定的文件 url

c# - 为什么我们在使用派生类型的实例时传递值?

c# - net5 自包含 exe 缺少一些系统 DLL

c# - 在 C# 中从控制台应用程序内部调用一个方法到我的 Web 应用程序

c# - xmlns ='' > 不是预期的。 - XML 文档中存在错误 (2, 2)

c# - 使用 C# HttpClient 在没有 multipart/form-data 的情况下发布文件

c# - 我应该检查 WebClient.UploadFile 的响应以了解上传是否成功吗?

C# WPF动画CPU占用异常

c# - 如何在 C# 中使用 System.Net.WebClient 上传 GZip 压缩数据

c# - 如何更改 .NET WebClient 对象的超时