Visual Basic スクリプト内で HTTP GET 要求を実行する方法はありますか? 処理のために特定の URL から応答の内容を取得する必要があります。
4 に答える
Dim o
Set o = CreateObject("MSXML2.XMLHTTP")
o.open "GET", "http://www.example.com", False
o.send
' o.responseText now holds the response as a string.
執筆時点では、応答で何をしようとしているのか、またはそのコンテンツ タイプが何であるかについては説明していません。回答にはすでに非常に基本的な使用方法が含まれていますMSXML2.XMLHTTP
(より明示的なMSXML2.XMLHTTP.3.0
progID をお勧めします) が、テキストではない場合もあります。
XMLHTTP にはresponseBody
、応答のバイト配列バージョンであるプロパティもあり、応答のラッパーでresponseStream
ある があります。IStream
MSXML.ServerXMLHTTP.3.0
サーバー側の要件 (ASP でホストされる VBScript など) では、 or WinHttp.WinHttpRequest.5.1
(ほぼ同一のインターフェイスを持つ) を使用することに注意してください。
XmlHttp を使用して PDF ファイルを取得して保存する例を次に示します。
Dim oXMLHTTP
Dim oStream
Set oXMLHTTP = CreateObject("MSXML2.XMLHTTP.3.0")
oXMLHTTP.Open "GET", "http://someserver/folder/file.pdf", False
oXMLHTTP.Send
If oXMLHTTP.Status = 200 Then
Set oStream = CreateObject("ADODB.Stream")
oStream.Open
oStream.Type = 1
oStream.Write oXMLHTTP.responseBody
oStream.SaveToFile "c:\somefolder\file.pdf"
oStream.Close
End If
実際にデータを送信するためにGETリクエストを使用している場合...
チェック: http://techhelplist.com/index.php/tech-tutorials/37-windows-troubles/60-vbscript-sending-get-request
MSXML2.XMLHTTP の問題は、複数のバージョンがあり、Windows OS のバージョンとパッチによって名前が異なることです。
これはそれを説明しています: http://support.microsoft.com/kb/269238
vbscript を使用して呼び出すことができたのは幸運でした
set ID = CreateObject("InternetExplorer.Application")
IE.visible = 0
IE.navigate "http://example.com/parser.php?key=" & value & "key2=" & value2
do while IE.Busy....
....その他のものですが、リクエストを通過させるだけです。