.Net 的 HTTP 实现是……有问题的。除了符合 HTTP/1.0 的一些问题之外,现在困扰我的是HttpWebResponse.GetResponse()
ReadTimeout和Timeout 设置为 5000 块大约 20 秒后失败(问题是它应该在 5 秒后失败,但实际上需要 20 秒)。
我需要一个具有更好协议一致性和超时控制的库。知道吗?
根据Microsoft的说法,可能会挂起的可能是 DNS 解析,这可能需要长达 15 秒。
解决方案 - 自己进行 DNS 解析 (Dns.BeginGetHostByName)。
Chilkat有一个 HTTP 组件。我从未使用过它,但我对它们的其他一些组件印象深刻。
请参阅 HttpWebRequest.BeginGetResponse() 方法。不完全是您所要求的,您已经有几天没有收到任何其他回复了,值得一提。