我正在尝试将此网址中的内容添加到我的程序中: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;
}
}
字符串s永远不会被分配,因为client.DownloadString()是一个停止。
获取Google.com等常规网址时,效果非常好。
知道什么是错的吗?
答案 0 :(得分:7)
只需设置HttpRequestHeader.Accept
和HttpRequestHeader.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;
}
答案 1 :(得分:3)
在标题中添加用户代理,您应该没问题。
client.Headers.Add ("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.0.3705;)");
答案 2 :(得分:2)