我有一个基于HTTP的API,可能需要调用多次。问题是,尽管通过浏览器进行相同的请求几乎瞬间完成,但我无法让请求时间少于约20秒。以下代码展示了我到目前为止如何实现它。
WebRequest r = HttpWebRequest.Create("https://example.com/http/command?param=blabla");
var response = r.GetResponse();
一个解决方案是进行异步请求,但我想知道为什么它需要这么长时间以及我是否可以避免这种情况。我还尝试过使用WebClient类,但我怀疑它内部使用了WebRequest。
更新:
在发布模式下运行以下代码大约需要40秒钟(使用Stopwatch测量):
WebRequest g = HttpWebRequest.Create("http://www.google.com");
var response = g.GetResponse();
我在一所大学工作,可能有不同的网络配置影响性能,但是直接使用浏览器可以近乎瞬间完成。
更新2:
我将代码上传到远程机器上,它能够正常运行,因此结论是.NET代码与浏览器相比做了额外的事情,或者它在大学网络中解析地址时存在问题(代理问题或其他问题?!)。