Ich führe den folgenden PHP-Code aus, während ich versuche, eine Anfrage von einem SOAP-API-Server zu bekommen
%Vor%Alles, was ich bekam, war der Antwortcode "sieht aus, als ob wir kein XML-Dokument hätten".
Aber als ich die Variable $ Lastresponse im catch-Block betrachtete, fand ich sie wie folgt:
------=_Part_1134075_393252946.1482317378966 Content-Type: application/xop+xml; charset=utf-8; type="text/xml" <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"> <SOAP-ENV:Header/> <SOAP-ENV:Body> ......all valid data ... </SOAP-ENV:Body> </SOAP-ENV:Envelope> ------=_Part_1134075_393252946.1482317378966--
Hinweis: Die $ options-Parameter, die ich verwende, sind:
%Vor%Obwohl ich eine Problemumgehung zum Parsen der XML-Datei gemacht habe, hat jemand eine Vorstellung von diesen zusätzlichen ----- Teil-Bits? Gibt es etwas, was ich falsch mache?
Diese -----Part
sachen werden in hier Begrenzungen in mehrteiligen Nachrichten genannt und in RFC2387 .
Nach einer Untersuchung scheint es, dass SoapClient nicht in der Lage ist, mehrteilige Nachrichten zu analysieren, weshalb Sie diese Ausnahme erhalten haben.
Die Lösung besteht darin, SoapClient zu erweitern, um den XML-Inhalt mit Regex- oder anderen String-Funktionen zu extrahieren. Hier ist ein Beispiel aus dieser Seite :
%Vor%SoapClient :: SoapClient () erzeugt einen E_ERROR-Fehler, wenn die Optionen location und uri nicht im Nicht-WSDL-Modus bereitgestellt werden.
Eine SoapFault-Ausnahme wird ausgelöst, wenn der wsdl-URI nicht geladen werden kann.
Tags und Links php xml soap web-services