我正在尝试使用以下请求网址获取Bing壁纸数据:http://www.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1 我有以下代码:
private string getJsonData()
{
using (var client = new HttpClient())
{
client.DefaultRequestHeaders.Clear();
client.DefaultRequestHeaders.TryAddWithoutValidation("Accept", "application/json");
client.DefaultRequestHeaders.TryAddWithoutValidation("User-Agent", "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Dragon/43.3.3.185 Chrome/43.0.2357.81 Safari/537.36");
using (var response = client.GetAsync("http://www.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1").Result)
{
response.EnsureSuccessStatusCode();
return response.Content.ReadAsStringAsync().Result;
}
}
}
问题是我收到的版权链接等于javascript:void(0),如您所见,如果我使用浏览器发出相同的请求,我会收到一个有效的网址:http://www.bing.com/search?q=Brooklyn+Heights,+New+York&form=hpcapt&filters=HpDate:%2220150906_0700%22
我已经尝试了很多关于随请求发送的标头的事情,没有成功,所以我认为问题来自其他地方。有什么建议吗?
注意:使用xml作为请求的格式时会出现同样的问题
谢谢!
答案 0 :(得分:0)
由于javascript:void(0)意味着未定义,我想对于特定情况根本没有版权林 k(指向作者网页,或类似的东西)。只有“©Andrew C. Mace / Getty Images”
答案 1 :(得分:0)
最后,我发现了这个问题:看起来我必须在请求网址中添加区域,例如:http://www.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1&mkt=en-US。在这种情况下,copyrightlink不是javascript:void(0)。