So Rufen Sie eine .Net Web Service-Methode von der Klassischen ASP-Verwendung von SEIFE
Bin ich versucht zu rufen .Net-Web-Service von Classic ASP mit SEIFE. Ich gebaut habe folgenden code als test-und halten immer wieder einen leeren reponsebody mit einem 400 Bad Request Fehler. Mache ich etwas falsch oder könnte dieses Problem auf .Net Seite?
'set up xmlhttp to checkout server
Dim oRequest
Set oRequest = Server.CreateObject("MSXML2.ServerXMLHTTP")
'setting this option will allow ServerXMLHTTP to ignore the certificate errors it encounters.
oRequest.setOption(2) = SXH_SERVER_CERT_IGNORE_ALL_SERVER_ERRORS
' resolve, connect, send, receive - in milliseconds
oRequest.setTimeouts 10000, 10000, 10000, 10000
'set the URL
msURL = "[redacted]"
msSOAP = "<?xml version=""1.0"" encoding=""utf-8"" ?>"
msSOAP = msSOAP & "<soap12:Envelope xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"" xmlns:xsd=""http://www.w3.org/2001/XMLSchema"" xmlns:soap12=""http://www.w3.org/2003/05/soap-envelope"">"
msSOAP = msSOAP & "<SOAP:Body>"
msSOAP = msSOAP & "<[Some Service] xmlns=""http://localhost"">"
msSOAP = msSOAP & "<MethodName>"
msSOAP = msSOAP & "<methodParam1>[some value]</methodParam1>"
msSOAP = msSOAP & "<methodParam2>[some value]</methodParam2>"
msSOAP = msSOAP & "<methodParam3>[some value]</methodParam3>"
msSOAP = msSOAP & "</MethodName>"
msSOAP = msSOAP & "</[Some Service]>"
msSOAP = msSOAP & "</SOAP:Body>"
msSOAP = msSOAP & "</soap12:Envelope>"
oRequest.Open "POST", msURL, False
oRequest.setRequestHeader "Content-Type", "text/xml"
oRequest.setRequestHeader "SOAPMethodName", "[MethodName]"
oRequest.setRequestHeader "SOAPAction", "[Some Url]"
oRequest.send msSOAP
Response.Write oRequest.ResponseBody
- Oops. Ich sehe die schlecht formatierte XML-Daten mit der soap12-tag, der nicht mit der SEIFE end-tag. Aber, das spielt keine Rolle. Es ist korrekt, in der real version von meinem code mit keine guten Ergebnisse.
- Welche Art (und format) ist
<statusDateTime/>
und passt es zu dem, was Sie bekommen vonNow()
?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Folgende Lösung war die Antwort auf mein problem. Und Filburt, sobald ich machte wirklich eine gute SEIFE aufrufen, entdeckte ich, dass Sie Frage war sehr berechtigt. Die Art und das format zählte, stark!
Nahm ich das "?wsdl - " aus der url und wechselte den Umschlag ein wenig und es funktioniert jetzt. Ich habe auch entfernt die Einstellung der SoapMethodName header.
?wsdl
und oblocalhost
ist das wirklich dein schema namespace wäre meine nächsten Fragen 😉