DownloadString为https网址提供了超时,似乎可以在浏览器中使用

Lar*_*ard 3 c# https json webclient

我试图将此URL中的内容导入我的程序:https://data.mtgox.com/api/2/BTCUSD/money/ticker.在我的任何浏览器中访问URL时,它都可以正常运行.

但是在我的程序中,它会等待90秒,并给我一个超时.

这是我的代码:

    private const string ApiLnk = "https://data.mtgox.com/api/2/BTCUSD/money/ticker";

    static void Main(string[] args)
    {
        using (WebClient client = new WebClient())
        {
            string s = client.DownloadString(ApiLnk);
            int i = 0;
        }
    }
Run Code Online (Sandbox Code Playgroud)

字符串s永远不会被分配,因为client.DownloadString()是一个停止.

获得像Google.com这样的普通网址时,它的效果非常好.

知道什么是错的吗?

I4V*_*I4V 7

只需设置HttpRequestHeader.AcceptHttpRequestHeader.UserAgent标题.这有效

using (WebClient client = new WebClient())
{
    client.Headers[HttpRequestHeader.Accept] = "text/html, image/png, image/jpeg, image/gif, */*;q=0.1";
    client.Headers[HttpRequestHeader.UserAgent] = "Mozilla/5.0 (Windows; U; Windows NT 6.1; de; rv:1.9.2.12) Gecko/20101026 Firefox/3.6.12";
    string s = client.DownloadString(ApiLnk);
    int i = 0;
}
Run Code Online (Sandbox Code Playgroud)