WinHTTP和MSXML永远挂在.Send()上

时间:2016-08-30 12:03:54

标签: windows http winapi connect autoit

我正在尝试创建一个可以多次连接到我办公室内部API的应用。这些是对同一网络上的服务器的简单GET请求(通过IP访问)。但是在我们的一些机器中,.Send()永远挂起。这是代码:

Func get_url($RequestURL)
    ;Global $oHTTP = ObjCreate("winhttp.winhttprequest.5.1") ; didn't work too
    Local $oHTTP = ObjCreate("MSXML2.ServerXMLHTTP.3.0")
    $oHTTP.Open("GET", $RequestURL, False)
    $oHTTP.Send()
     if  $oHTTP.status == 200 Then
           Return $oHTTP.ResponseText
     Else
            Return  SetError($oHTTP.status, 0, False)
     EndIf
 EndFunc

虽然相同的代码在某些机器上运行良好,但在其他机器中,它永远挂在$oHTTP.Send()上。但是,在这些机器上,我可以使用telnet,netcat和任何Web浏览器连接到IP而没有任何问题。防火墙双方都关闭了。

在研究它时,我发现不仅仅是我面对这个问题,而且我找到的主题都没有解决方案。此功能是否已被弃用?如果是这样,什么是替代品?

1 个答案:

答案 0 :(得分:0)

解决方案就像bug本身一样奇怪。

刚刚在脚本开始添加InetGet("http://google.com"),一切正常。

也许Windows不允许应用程序在没有打开套接字的情况下打开套接字......或者它确实是一个错误(因为我看到网络上关于这个比我更老的错误的主题,我这么认为。)