2016-09-09 23 views
6

VBA kullanarak bir SOAP isteği oluşturmaya çalışıyorum ancak boş bir yanıt alıyorum. Lütfen aşağıdaki kodu bulun.WebService'den SOAP isteği aracılığıyla yanıt alınamadı VBA

objHttp.Open "GET", sURL, False 

değiştirilmesi gerektiğini hangi: WSDL url: http://productavailabilityfeed.xxxx.com/Availability.svc?wsdl

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 
+1

Bu bir GET'e değil, bir GET'e benziyor: İçeriğinizi URL sorgusunda değil, isteğin gövdesine gönderiyorsunuz. –

+0

Lütfen bir örnekle detaylandırır mısınız? Web servisleriyle yeni başlayan biriyim. –

+0

'objHttp.Open" GET ", sURL, False ' –

cevap

1

Kesinlikle doğrultusunda bir hata var

objHttp.Open "POST", sURL, False 

Bu hata ileri gitmesine izin vermez . Bunu düzelttikten sonra, sabun mesajında ​​hata ayıklamak zorunda kalabilirsiniz. Yani, bunu değiştirdikten sonra, bize nasıl olduğunu anlatabilirsin.

+0

Bunu da yaptım ama hala boş bir yanıt alıyorum –

İlgili konular