Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# HTTPClient返回HttpRequestException WinRT_C#_Json_Windows Runtime_Httpclient - Fatal编程技术网

C# HTTPClient返回HttpRequestException WinRT

C# HTTPClient返回HttpRequestException WinRT,c#,json,windows-runtime,httpclient,C#,Json,Windows Runtime,Httpclient,出于某种原因,当我尝试从正在使用的web API获取JSON结果时,我在Visual Studio中收到一个403:Forbidded异常。当我尝试在我的web浏览器中使用web API URL时,所有内容都显示为它应该显示的内容。有什么想法吗 主要代码: 如果您使用的是默认的用户代理,服务器似乎会对您做出403响应。如果您将其更改为chrome用户代理,服务器将正确应答 var url = new Uri("http://isitup.org/duckduckgo.com.json"); va

出于某种原因,当我尝试从正在使用的web API获取JSON结果时,我在Visual Studio中收到一个403:Forbidded异常。当我尝试在我的web浏览器中使用web API URL时,所有内容都显示为它应该显示的内容。有什么想法吗

主要代码:


如果您使用的是默认的用户代理,服务器似乎会对您做出403响应。如果您将其更改为chrome用户代理,服务器将正确应答

var url = new Uri("http://isitup.org/duckduckgo.com.json");
var req = new HttpClient();
var message = new HttpRequestMessage(HttpMethod.Get, url);
message.Headers.Add("User-Agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_2) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1309.0 Safari/537.17");
var response = await req.SendAsync(message);
var responseString = await response.Content.ReadAsStringAsync();

很可能你的浏览器正在发送某种身份验证…@JonSkeet是的,考虑过了,但我不知道会在哪里。我们可以使用Wireshark或类似的工具来查看你的浏览器正在发送什么。尝试使用Firefox的Live HTTP头来检查身份验证密钥或类似的工具,但找不到任何东西。Wireshark能给我看些更具体的吗?我认为WinCap不能安装在Windows 8.1上。检查饼干。您的浏览器可能会发送它们,而您的应用程序不会。2.尝试更改用户代理,可能默认的一个被serverWorks禁止,就像它应该做的一样!谢谢,Teemu。在尝试使用bing地图定位api时遇到了这个问题。谢谢
class StatusMessage
{
    public class RootObject
    {
        public string domain { get; set; }
        public int port { get; set; }
        public int status_code { get; set; }
        public object response_ip { get; set; }
        public object response_code { get; set; }
        public object response_time { get; set; }
    }

}
var url = new Uri("http://isitup.org/duckduckgo.com.json");
var req = new HttpClient();
var message = new HttpRequestMessage(HttpMethod.Get, url);
message.Headers.Add("User-Agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_2) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1309.0 Safari/537.17");
var response = await req.SendAsync(message);
var responseString = await response.Content.ReadAsStringAsync();