我保证这并不像听起来那么简单。我想知道为什么第一次调用HttpSendRequest需要比后续调用更长的时间,即使后来的请求是针对不同的URL。例如:
InternetConnect(...“foo.com”...)//立即返回
HttpOpenRequest(...)//立即返回
HttpSendRequest(...)//需要~3秒左右
HttpSendRequest(...)//需要~200 ms
InternetConnect(...“bar.com”...)//立即返回
HttpOpenRequest(...)//立即返回
HttpSendRequest(...)//需要~200 ms
为什么第一个HttpSendRequest(...)花了这么长时间?无论URL如何,这都是非常一致的。
谢谢, 格雷格
答案 0 :(得分:1)
第一个请求可能需要发生一些事情,而不需要在第二个请求上发生。立即想到DNS查找和代理检测。
答案 1 :(得分:-2)
它也可能是配置文件加载。某些.Net框架类将尝试从应用程序配置文件中读取设置,如果未找到任何文件或设置,则会重新设置为默认值。例如。我认为Http类使用的WebRequest / WebClient将检查显式的Web代理设置,如果那些不存在则接着从OS(在IE中设置)的代理设置被选中。所有这些都会导致初始启动滞后,通常在首次使用类时,即工作通常在静态构造函数内完成。
配置设置在此处定义: