Webservice mit wsdl-File
02.09.2017 00:59:40
Joni
ich möchte einen Webservice umsetzen und komme leider nicht weiter. Der Service meldet immer eine falsche Anzahl an Parametern. Ich vermute es hat etwas mit dem Header zu tun. Mit unterschiedlichen Test-Tools kann ich Daten abfragen nur über Excel will es nicht. Bin für jede Hilfe dankbar.
Der Verweis auf die Microsoft Office Soap Type Library 3.0 und XML 6.0 ist gesetzt.
Code für den Aufruf
Sub WebService_SOAPCall1()
Dim sURL As String, oWebService As Object, vReturnValue As Variant
Dim sXML As String
On Error GoTo SOAPError
sURL = "http://www.thomas-bayer.com/axis2/services/BLZService?wsdl"
Set oWebService = New SoapClient30
oWebService.MSSoapInit (sURL)
sXML = TXT_ReadAll("B:\Bank.xml")
Debug.Print sXML
vReturnValue = oWebService.getBank(sXML)
Debug.Print vReturnValue
Exit Sub
SOAPError:
If oWebService.FaultString "" Then
MsgBox "Fehler: " & oWebService.FaultString & " " & oWebService.Detail
Else
MsgBox "Fehler: " & ERR.Description
End If
ERR.Clear
End Sub
Das XML schaut so aus
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://thomas-bayer.com/blz/">
<soap:Body>
<tns:getBank>
<tns:blz>10050000</tns:blz>
</tns:getBank>
</soap:Body>
</soap:Envelope>
Der HTML-Header lt. Test-Tool so => ist aber in Excel vermutlich nicht enthalten
User-Agent: Crosscheck Networks SOAPSonar
Content-Type: text/xml; charset=utf-8
SOAPAction: ""
Content-Length: 373
Auch mit vReturnValue = oWebService.getBank("10050000") kriege ich die gleiche Fehlermeldung.
Bei http://www.webservicex.com/globalweather.asmx?wsdl funktioniert der Aufruf mit
vReturnValue = oWebService.GetCitiesByCountry("austria") mit Response-Daten und mit
vReturnValue = oWebService.GetCitiesByCountry(sXML) ohne Fehlermeldung aber ohne Daten?
XML dazu
<?xml version="1.0" encoding="UTF-8"?>
<Envelope xmlns="http://schemas.xmlsoap.org/soap/envelope/">
<Body>
<GetCitiesByCountry xmlns="http://www.webserviceX.NET">
<CountryName>austria</CountryName>
</GetCitiesByCountry>
</Body>
</Envelope>
Danke für eure Hilfe!
Gruß Joni