C# 为什么我通过HttpClient调用API时会出现服务器超时,但Postman没有问题?

C# 为什么我通过HttpClient调用API时会出现服务器超时,但Postman没有问题?,c#,rest,web-services,dotnet-httpclient,C#,Rest,Web Services,Dotnet Httpclient,我试图向RESTful服务发出GET请求,但.NETHttpClient接收到超时,但通过邮递员,这会在几秒钟内返回预期的响应(错误响应,因为我尚未“登录”) 我所尝试的: 我已经检查了网址是相同的,他们是 我认为邮递员的自动标题可能是问题所在,但在HttpClient中设置这些标题后,我仍然收到一个超时 如果我在HttpClient上增加超时,我仍然会从服务器获得超时((504)网关超时) Client=新的HttpClient(新的HttpClientHandler() { Automati

我试图向RESTful服务发出
GET
请求,但.NET
HttpClient
接收到超时,但通过邮递员,这会在几秒钟内返回预期的响应(错误响应,因为我尚未“登录”)

我所尝试的:
  • 我已经检查了网址是相同的,他们是
  • 我认为邮递员的自动标题可能是问题所在,但在
    HttpClient
    中设置这些标题后,我仍然收到一个超时
  • 如果我在
    HttpClient
    上增加超时,我仍然会从服务器获得超时(
    (504)网关超时
  • Client=新的HttpClient(新的HttpClientHandler()
    {
    AutomaticDecompression=System.Net.DecompressionMethods.GZip
    });
    var objTask=Client.GetStringAsync(objUrl);
    objTask.Wait();
    strResponse=objTask.Result;
    strResponse=Client.GetStringAsync(objUrl.Result);
    
    为什么我通过HttpClient收到超时

    注:
    我们的WebApi正在调用我们的WCF服务,而WCF服务又通过HttpClient调用第三方RESTful服务——出于安全原因,我不能直接从我们的WebApi控制器调用第三方API。该网站基于.NET 4.0框架。

    在@jdweng和@gunr217的大量帮助下,我意识到问题是由于自托管WCF服务的
    App.Config
    中存储的代理造成的。如果我把这个评论掉了,我就不会有超时问题了

    HttpClient
    构造函数可以接受一个
    HttpClientHandler
    ,它有一个
    Proxy
    属性,您可以绕过本地代理,如下所示:

    返回新的HttpClient(新的HttpClientHandler()
    {
    AutomaticDecompression=System.Net.DecompressionMethods.GZip,
    Proxy=newwebproxy()
    {
    旁路ProxyOnLocal=true
    }
    })
    {
    BaseAddress=新Uri(“https:\\my.service”)
    };
    
    您的计算机是否有邮递员忽略的代理?还可以查看代理字符串。@gunr217它确实有一个代理,我不知道邮递员会忽略它。我现在检查一下。@gunr2171谢谢你,但不幸的是,这似乎不是问题所在。在我启用的设置中,另一个调试技巧是使用网络流量监视器(如Fiddler)来检查http请求/响应。您可以比较邮递员的回复和您的代码,以查看差异。@gunr217这是一个很好的提示。非常感谢。