c# -来自应用程序的响应与来自浏览器的响应不同

本文关键字:响应 浏览器 应用程序 | 更新日期: 2023-09-27 18:11:22

我正在尝试使用以下请求url: 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;
            }
        }
    }

问题是我收到的copyrightlink等于javascript:void(0),并且正如您所看到的,如果我对浏览器发出相同的请求,我得到一个有效的URL: http://www.bing.com/search?q=Brooklyn+Heights,+New+York&form=hpcapt&filters=HpDate:%2220150906_0700%22

我已经尝试了很多关于与请求一起发送的头的事情,没有成功,所以我想问题来自其他地方。有什么建议吗?

注意:当使用xml作为请求格式时也存在同样的问题

谢谢!

c# -来自应用程序的响应与来自浏览器的响应不同

由于javascript:void(0)意味着未定义,我想对于特定情况来说,根本没有版权link(指向作者网页,或类似的东西)。只有"©Andrew C. Mace/Getty Images"

最后,我发现了问题:看起来我必须在请求URL中添加区域,如:http://www.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1&mkt=en-US。copyrightlink不是javascript:void(0)