我正在测试winHTTP并且我注意到无论通过WinHttpSetTimeouts设置的超时值如何,如果使用WinHttpConnect的IP地址并且IP地址无法访问(即ping返回"目标主机不可访问"),即使我将超时值设置得更高,连接超时也始终为21秒。
正在考虑的值似乎对应于dwConnectTimeout值(传递给WinHttpSetTimeouts的第3个值),因为在减小此值时,超时会更快发生,但上限为21秒。
以前有没有人经历过这个?有谁知道为什么会发生这种情况以及我如何防止它发生?
答案 0 :(得分:2)
经过研究,似乎有WinhttpSetTimeOuts
函数无法控制的底层TCP连接超时。建议的解决方案是从所需的Timeout值中减去经过的时间,然后在剩余时间内重试请求。
当然,如果你找到一个更好的解决方案,那么我会很高兴听到它。