Probleme Soap, ServerProcedure not present .... - XML/XSL - Programmation
Marsh Posté le 24-01-2007 à 20:41:43
Juste un commentaire comme ça sans examiner le cas en profondeur. Il existe deux façons d'écrire un message SOAP, le RPC style et le document style, et ton serveur n'accepte pas forcément les deux. Donc le moyen de se prémunir contre ce problème est peut-être de ne pas construire le message à la main mais d'utiliser un client SOAP et j'imagine que dans ton cas le meilleur est le Microsoft SOAP Toolkit (voir http://msdn.microsoft.com/webservices/). Je n'ai jamais utilisé que le 3.0 avec VBA mais c'était d'une simplicité enfantine, en trois lignes c'était initialisé à partir du WSDL et la fonction était appelée.
Marsh Posté le 24-01-2007 à 03:37:20
Dans un projet .net, je dois faire appel a une fonction (web service) sur un serveur, je recois comme reponse
'SOAP-ENV:ServerProcedure 'SubmitOrder' not present' et pourtant l'admin du site (en php) affirme que cette fonction existe, j'ai join mon code source (asp.net),
et Merci pour votre aide d'avance.
Dim SoapEnv As String = ""
SoapEnv = "<?xml version=""1.0"" encoding=""utf-8""?>"
SoapEnv += "<soap:Envelope xmlns:xsi = ""http://www.w3.org/2001/XMLSchema-instance"" "
SoapEnv += "xmlns:xsd= ""http://www.w3.org/2001/XMLSchema"" "
SoapEnv += "xmlns:soap= ""http://schemas.xmlsoap.org/soap/envelope/"">"
SoapEnv += "<soap:Body>"
SoapEnv += "<SubmitOrder>"
SoapEnv += "<RequestId>10</RequestId>"
SoapEnv += "<RequestDate>2007/01/24 02:01:01</RequestDate>"
SoapEnv += "<ProductId>1</ ProductId >"
SoapEnv += "</SubmitOrder>"
SoapEnv += "</soap:Body>"
SoapEnv += "</soap:Envelope>"
Dim objXMLHttp As New MSXML2.ServerXMLHTTP
objXMLHttp.open("POST", "http://xxx.siteditant.com/soap/kgate.php", False)
'http://xxx.sitedistant.com/soap/kgate.wsdl
objXMLHttp.setRequestHeader("Content-Type", "text/xml; charset=utf-8" )
objXMLHttp.send(SoapEnv.ToString())
objXMLHttp.waitForResponse(500)
Dim outXML As String = objXMLHttp.responseText.ToString
Label1.Text = outXML.ToString() ' Text Envoyé
Label3.Text = SoapEnv.ToString() ' Reponse Reçu
---------------
Happy Coding