“Software zu entwickeln ist ähnlich komplex, wie Autos zu bauen.

Für ihr Auto gibt es Crashtests, wer testet ihre Software?”

» Waidner IT Solutions | Mainz/Wiesbaden | +49 176 10042345
Home » Softwareentwicklung » Webservices mit VBA ansprechen

Webservices mit VBA ansprechen

Heute morgen habe ich für einen Kunden ein kurzes Infodokument zusammengestellt, um zu zeigen, wie man Webservices über GET oder POST in VBA anspricht. Ohne viel zu erklären, die zwei kurzen Codeschnipsel. Der erste Request holt sich über POST zu einem ISO2-Country-Code ein paar Infos als XML-Dokument, der zweite fragt Google per GET nach dem Begriff „test“ und liefert das Ergebnis als json zurück.

' Democode für Webservice-Aufrufe über GET und POST
'
' 3.11.2012 - Waidner IT Solutions
 
Option Explicit
 
Sub XMLHttpTest()
    Dim XMLHttp As Object
    Dim strURL As String, strMethod As String, strUser As String
    Dim strPassword As String
    Dim bolAsync As Boolean
    Dim varMessage
 
    ' Microsoft XML HTTP Objekt erzeugen
    Set XMLHttp = CreateObject("MSXML2.XMLHTTP")
 
    ' -------------- POST-Request, der xml liefert -------------
 
    ' Parameter für einen simplen POST-Request ohne Authentifizierung füllen
    strMethod = "POST"
    strURL = "http://www.webservicex.net/country.asmx/GetCountryByCountryCode"
    bolAsync = False
    strUser = ""
    strPassword = ""
    varMessage = "CountryCode=DE"
 
    MsgBox "POST-Request, der XML liefert"
 
    ' Request absetzen
    Call XMLHttp.Open(strMethod, strURL, bolAsync, strUser, strPassword)
    Call XMLHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded")
    Call XMLHttp.send(varMessage)
 
    ' Rückgabewerte ausgeben
    MsgBox "Status: " & XMLHttp.Status
    MsgBox "responseText: " & XMLHttp.responseText
    MsgBox "reponseXML: " & XMLHttp.responseXML.Text
 
    ' ---------------- GET-Request, der json liefert ----------------
 
    ' Parameter für einen simplen GET-Request ohne Authentifizierung füllen
    strMethod = "GET"
    strURL = "http://ajax.googleapis.com/ajax/services/search/web?v=1.0&q=test"
    bolAsync = False
    strUser = ""
    strPassword = ""
    varMessage = ""
 
    MsgBox "GET-Request, der JSON liefert"
 
    ' Request absetzen
    Call XMLHttp.Open(strMethod, strURL, bolAsync, strUser, strPassword)
    Call XMLHttp.send(varMessage)
 
    ' Rückgabewerte ausgeben
    MsgBox "Status: " & XMLHttp.Status
    MsgBox "responseText: " & XMLHttp.responseText
    MsgBox "reponseXML: " & XMLHttp.responseXML.Text
End Sub

2 Antworten auf Webservices mit VBA ansprechen

  1. Barbara sagt:

    Hallo,

    das wird mir sehr helfen, darf ich einiges so übernehmen?
    Ich kommentiere das naürlich entseprechend.

    Mfg, Babsi

    • Christian sagt:

      Freut mich, dass es hilft, dafür ist es da.

      Ist auch nur ein Codeschnipsel, kann gerne verändert werden (muss ja höchstwahrscheinlich).