Existe-t-il un moyen d'effectuer une requête HTTP GET dans un script Visual Basic? J'ai besoin d'obtenir le contenu de la réponse d'une URL particulière pour le traitement.
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.
Au moment de la rédaction, vous n'avez pas décrit ce que vous allez faire de la réponse ou quel est son type de contenu. Une réponse contient déjà une utilisation très basique de MSXML2.XMLHTTP
(Je recommande le plus explicite MSXML2.XMLHTTP.3.0
progID) mais vous devrez peut-être faire différentes choses avec la réponse, il ne peut pas s'agir de texte.
Le XMLHTTP a également une propriété responseBody
qui est une version de tableau d'octets de la réponse et il y a un responseStream
qui est un wrapper IStream
pour la réponse.
Notez que dans une exigence côté serveur (par exemple, VBScript hébergé dans ASP), vous utiliseriez MSXML.ServerXMLHTTP.3.0
ou WinHttp.WinHttpRequest.5.1
(qui a une interface presque identique).
Voici un exemple d'utilisation de XmlHttp pour récupérer un fichier PDF et le stocker: -
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
Si vous utilisez la demande GET pour réellement envoyer des données ...
vérifier: http://techhelplist.com/index.php/tech-tutorials/37-windows-troubles/60-vbscript-sending-get-request
Le problème avec MSXML2.XMLHTTP est qu'il existe en plusieurs versions, avec des noms différents selon la version et les correctifs du système d'exploitation Windows.
cela l'explique: http://support.Microsoft.com/kb/269238
j'ai eu plus de chance d'utiliser vbscript pour appeler
set ID = CreateObject("InternetExplorer.Application")
IE.visible = 0
IE.navigate "http://example.com/parser.php?key=" & value & "key2=" & value2
do while IE.Busy....
.... et plus de choses mais juste pour laisser passer la demande.