Próbowałem utworzyć żądanie SOAP przy użyciu VBA, ale za każdym razem otrzymuję pustą odpowiedź. Proszę znaleźć kod poniżej. WSDL url: http://productavailabilityfeed.xxxx.com/Availability.svc?wsdlNie można uzyskać odpowiedzi z usługi internetowej za pomocą żądania SOAP za pomocą VBA
Dim sURL As String
Dim sEnv As String
'Set and Instantiate our working objects
Set objHttp = CreateObject("MSXML2.XMLHTTP")
sURL = "http://productavailabilityfeed.xxxx.com/Product.svc/soap"
' we create our SOAP envelope for submission to the Web Service
'sEnv = "<?xml version=""1.0"" encoding=""utf-8""?>"
'sEnv = sEnv & "<soap:Envelope xmlns:soap=""http://schemas.xmlsoap.org/soap/envelope"">"
sEnv = "<soapenv:Envelope xmlns:soapenv=""http://schemas.xmlsoap.org/soap/envelope/"" xmlns:tem=""http://tempuri.org/"">"
sEnv = sEnv & " <soap:Header>"
sEnv = sEnv & " <soap:Body>"
sEnv = sEnv & " <tem:GetAccommodationByCode>"
sEnv = sEnv & " <!--Optional:-->"
sEnv = sEnv & " <tem:getAccommodationByCodeRequest>"
sEnv = sEnv & " <!--Optional:-->"
sEnv = sEnv & " <tem:credentials>"
sEnv = sEnv & " <!--Optional:-->"
sEnv = sEnv & " <tem:username>?</tem:username>"
sEnv = sEnv & "<!--Optional:-->"
sEnv = sEnv & "<tem:password>?</tem:password>"
sEnv = sEnv & "</tem:credentials>"
sEnv = sEnv & "<!--Optional:-->"
sEnv = sEnv & "<tem:accommodationCode>?</tem:accommodationCode>"
sEnv = sEnv & "<!--Optional:-->"
sEnv = sEnv & "<tem:imageSize></tem:imageSize>"
sEnv = sEnv & "<!--Optional:-->"
sEnv = sEnv & "<tem:interval></tem:interval>"
sEnv = sEnv & "</tem:getAccommodationByCodeRequest>"
sEnv = sEnv & "</tem:GetAccommodationByCode>"
sEnv = sEnv & "</soapenv:Body>"
sEnv = sEnv & "</soapenv:Envelope>"
'we invoke the web service
'use this code snippet to invoke a web service which requires authentication
objHttp.Open "GET", sURL, False
objHttp.setRequestHeader "Content-Type", "text/xml"
objHttp.setRequestHeader "SOAPAction", "http://tempuri.org/xxxx/GetAccommodationByCode"
objHttp.send sEnv
MsgBox objHttp.responseText
'clean up code
Set objHttp = Nothing
Set XMLDOC = Nothing
To wygląda jak POST, a nie GET: wysyłasz treść do treści żądania, a nie do zapytania o URL. –
Czy mógłbyś rozwinąć przykład? Jestem początkującym z webservices. –
'objHttp.Open" GET ", sURL, Fałsz" –