我有一个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分钟后).所以我很困惑为什么
它可以直接从浏览器正常工作,但在使用上面的代码时失败.
它在这一个请求上失败,但使用相同代码的其他请求可以通过编程方式正常工作.
对于要尝试的事情的任何建议或我应该要求服务器的所有者检查他们的结果以帮助诊断正在发生的事情?