WinHTTP の使用例 ~ 簡単に HTTP リクエストを送る
HttpWebRequest を用いて簡単に HTTP リクエストを送る方法を以前紹介しました。
そういえば、まだいろいろあったなぁ、と思い出して少し探したら出てきましたのでこちらで紹介しておきます。
WinHTTP を用いる方法です。
以下のコードを test.vbs などの名前で保存して、コマンドプロンプトから cscript test.vbs というようにして実行してみてください。 (ちなみに、URL のところの google.com はテスト用の URL に適宜書き換えてください)
Dim oWinHttpReq Dim sResult Set oWinHttpReq = CreateObject("WinHttp.WinHttpRequest.5.1") ' HTTP リクエストの送信 oWinHttpReq.Open "GET", "http://www.google.com/", false oWinHttpReq.Send ' ステータスとレスポンスボディの取得 sResult = oWinHttpReq.Status & " " & oWinHttpReq.StatusText & vbCR & vbLF _ & oWinHttpReq.GetAllResponseHeaders & vbCR & vbLF _ & oWinHttpReq.ResponseText WScript.Echo sResult
私の環境では OneCare がブロックしたせいで、一度目のリクエストはうまく送信できませんでしたが、 cscript からのリクエストを許可した二度目以降は正常にリクエストを送信できました。
WinHTTP, WinInet など各種の API が濫立していますが、一体どれが良いのかよくわからないですね。 WinInet を改良して WinHTTP という話らしいですが、そのコンセプトはともあれ実装が成功しているかどうかは別問題ですしね。
WinHTTP については、こちらは VBScript でのテストなのでこの "雑記帳" カテゴリに突っ込みましたが、 本来は C/C++ で書けるものです。 WinHTTP のコードサンプルについては、ネットワークプログラミングのカテゴリに入れようと思っています。