2016-08-30 15 views
0

私はオフィスの内部APIに数回接続するアプリケーションを作成しようとしています。これらは、同じネットワーク上の(IP経由でアクセスされる)サーバーに対する単純なGET要求です。しかし、いくつかのマシンでは、.Send()は永遠にハングします。ここでは、コードは次のとおりです。同じコードは、他に、いくつかのマシンではうまく働いている間WinHTTPとMSXMLが永久に.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

解決策はバグそのものと同じくらい奇妙です。

スクリプトの開始時にちょうどInetGet("http://google.com")が追加され、すべて正常に動作します。

おそらく、Windowsは、ソケットを開かずにしばらくしてからアプリケーションがソケットを開くことを許可していません...または、それは本当にバグです(このバグに関するウェブのトピックは私よりも古いです。 )。

関連する問題