Håndtere SOAP response.
Jeg kalder en PHP Service via asp.net på følgende måde (Da jeg ikke kan få VS.Net til at benytte en PHP Service korrekt):Dim xmlrequest As String = "<?xml version='1.0'?><SOAP-ENV:Envelope xmlns:SOAP-ENV='http://schemas.xmlsoap.org/soap/envelope/' xmlns:SOAP-ENC='http://schemas.xmlsoap.org/soap/encoding/' xmlns:tns='tns:CustomerServiceV1' xmlns:wsdl='http://schemas.xmlsoap.org/wsdl/' xmlns:xsd='http://www.w3.org/2001/XMLSchema' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'><SOAP-ENV:Body><ns1:createCustomer SOAP-ENV:encodingStyle='http://schemas.xmlsoap.org/soap/encoding/' xmlns:ns1='http://etdomain.dk/ws/CRM'><firmalogin xsi:type='xsd:string'>firmalogin</firmalogin><firmanavn xsi:type='xsd:string'>firmanavn</firmanavn><adresse xsi:type='xsd:string'>adresse</adresse><postnr xsi:type='xsd:string'>postnr</postnr><bynavn xsi:type='xsd:string'>bynavn</bynavn><tlfnr xsi:type='xsd:string'>tlfnr</tlfnr><faxnr xsi:type='xsd:string'>faxnr</faxnr><email xsi:type='xsd:string'>email</email><websiteurl xsi:type='xsd:string'> websiteurl</websiteurl><sprog xsi:type='xsd:string'>sprog</sprog><land xsi:type='xsd:string'>land</land><gruppe xsi:type='xsd:string'>1</gruppe></ns1:createCustomer></SOAP-ENV:Body></SOAP-ENV:Envelope>"
Dim req As HttpWebRequest = CType(WebRequest.Create("http://test2.dmz.etdomain.dk/extern/ws/CRM/wsCustomer.php"), HttpWebRequest)
req.Method = "POST"
req.ContentType = "text/xml"
req.Credentials = New NetworkCredential("userid", "password")
Dim post As StreamWriter = New StreamWriter(req.GetRequestStream())
post.Write(xmlrequest)
post.Close()
Dim resp As HttpWebResponse = CType(req.GetResponse(), HttpWebResponse)
Dim sr As StreamReader = New StreamReader(resp.GetResponseStream())
Dim xmlresponse As String = sr.ReadToEnd()
xmlresponse får efterfølgende tildelt værdien:
"<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://etdomaine.dk/ws/CRM" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns2="http://xml.apache.org/xml-soap" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:createCustomerResponse><returnvalue xsi:type="ns2:Map"><item><key xsi:type="xsd:string">text</key><value xsi:type="xsd:string">Parameter 11 (land) should be 2 letters</value></item><item><key xsi:type="xsd:string">code</key><value xsi:type="xsd:int">0</value></item></returnvalue></ns1:createCustomerResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>
"
Jeg ved, at hvis jeg kunne kalde webservicen på en "normal" måde i VS 2005, ville jeg få et array retur, som indeholder en int og en text.
Det jeg i bund og grund ønsker at få ud, er værdierne "0" og "Parameter 11 (land) should be 2 letters".
Jeg har prøvet med noget .ReadXml(xmlresponse) uden held.
Er der nogen der kan hjælpe med den?