gpt4 book ai didi

c# - 为什么我的 C# 应用程序在此 REST 请求上会失败,但通过浏览器可以正常运行?

转载 作者:太空狗 更新时间:2023-10-29 21:56:59 24 4
gpt4 key购买 nike

我有一个 C# 应用程序,我正在通过 REST 访问一些数据,因此我传入一个 URL 以获取 JSON 负载。我以编程方式访问了几个不同的 URL,它们都可以使用下面的代码正常工作,除了一个调用

这是我的代码:

 var url = "http://theRESTURL.com/rest/API/myRequest";
var results = GetHTTPClient().GetStringAsync(url).Result;
var restResponse = new RestSharp.RestResponse();
restResponse.Content = results;
var _deserializer = new JsonDeserializer();

其中 GetHTTPClient() 使用以下代码:

private HttpClient GetHTTPClient()
{
var httpClient = new HttpClient(new HttpClientHandler()
{
Credentials = new System.Net.NetworkCredential("usr", "pwd"),
UseDefaultCredentials = false,
UseProxy = true,
Proxy = new WebProxy(new Uri("http://myproxy.com:8080")),
AllowAutoRedirect = false
});
httpClient.Timeout = new TimeSpan(0,0, 3500);
return httpClient;
}

所以正如我所说,上面的代码工作正常但是一堆不同的请求但是对于一个特定的请求,我在

 .GetStringAsync(url).Result

错误调用:

无法从传输连接读取数据:远程主机强行关闭现有连接

我在等待大约 10 分钟后收到该错误。有趣的是,如果我将无法正常工作的同一个 URL 直接放入 Internet Explorer,我确实会取回 JSON 负载(也在大约 10 分钟后)。所以我很困惑为什么

  • 它可以直接在浏览器中正常工作,但在使用上面的代码时会失败。
  • 它在这个请求上失败,但使用相同代码的其他请求以编程方式工作正常。

对于要尝试的事情或我应该要求服务器所有者检查他们端以帮助诊断发生了什么的事情有什么建议吗?

最佳答案

我认为这里的超时不是问题,因为错误表明连接已远程关闭并且设置的超时约为 58 分钟,与您的其他数字相比绰绰有余。

您是否尝试过查看请求本身?可能想用这些结果编辑您的问题。

关于c# - 为什么我的 C# 应用程序在此 REST 请求上会失败,但通过浏览器可以正常运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34541082/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com