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 のコードサンプルについては、ネットワークプログラミングのカテゴリに入れようと思っています。

ここまでお読みいただき、誠にありがとうございます。SNS 等でこの記事をシェアしていただけますと、大変励みになります。どうぞよろしくお願いします。

© 2024 Web/DB プログラミング徹底解説