41

Visual Basic スクリプト内で HTTP GET 要求を実行する方法はありますか? 処理のために特定の URL から応答の内容を取得する必要があります。

4

4 に答える 4

74
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.
于 2008-10-15T14:10:18.000 に答える
38

執筆時点では、応答で何をしようとしているのか、またはそのコンテンツ タイプが何であるかについては説明していません。回答にはすでに非常に基本的な使用方法が含まれていますMSXML2.XMLHTTP(より明示的なMSXML2.XMLHTTP.3.0progID をお勧めします) が、テキストではない場合もあります。

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
于 2008-10-16T15:00:06.417 に答える
3

実際にデータを送信するために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.... 

....その他のものですが、リクエストを通過させるだけです。

于 2012-02-18T04:12:51.427 に答える