WebClient 无法在一个网站上运行

WebClient won't work on one website

我正在尝试将网站 (yellowpages) 的 html 代码下载到我的 C# winforms 应用程序中的字符串。

我不断从一个网站收到同样的错误。 所有其他网站都有效,我尝试过通用的网站,例如:http://www.google.co.za and it works but when I try to use http://www.yellowpages.co.za 它抛出:

An unhandled exception of type 'System.Net.WebException' occurred in System.dll Additional information: The remote server returned an error: (500) Internal Server Error.

我不知道为什么只有这个网站抛出这个错误。

请在下面找到我的代码

private string getPage()
{
    using (WebClient client = new WebClient())
    {
        return client.DownloadString("http://www.yellowpages.co.za/");               
    }
}

添加 user-agent header 解决了这个问题。

private string getPage()
{
    using (WebClient client = new WebClient())
    {
            client.Headers.Add("user-agent", "foo");
            return client.DownloadString("http://www.yellowpages.co.za/");               
    }
}

就是说,我会为 user-agent 输入一个有效值,而不是像 foo 这样的占位符。有关 user-agent 的详细信息,请参阅 rfc2616