私はVBAを使用してSOAPリクエストを作成しようとしていましたが、空白の応答が得られる毎回です。以下のコードを見つけてください。 WSDLのURL:http://productavailabilityfeed.xxxx.com/Availability.svc?wsdlVBAを使用してSOAPリクエストを通じてWebサービスから応答を受け取ることができません
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
これはGETではなくPOSTのように見えます。要求の本文にURLクエリー文字列ではなくコンテンツを送信しています。 –
例を詳しく教えてください。私はwebservicesの初心者です。 –
'objHttp.Open" GET "、sURL、False' –