我正在尝试创建一个可以多次连接到我办公室内部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而没有任何问题。防火墙双方都关闭了。
在研究它时,我发现不仅仅是我面对这个问题,而且我找到的主题都没有解决方案。此功能是否已被弃用?如果是这样,什么是替代品?
答案 0 :(得分:0)
解决方案就像bug本身一样奇怪。
刚刚在脚本开始添加InetGet("http://google.com")
,一切正常。
也许Windows不允许应用程序在没有打开套接字的情况下打开套接字......或者它确实是一个错误(因为我看到网络上关于这个比我更老的错误的主题,我这么认为。)