Wizard
Wizard

Reputation: 11295

PHP SOAP xml response not decode xml tags

SOAP server try to return corrupted xml, and I'm getting error: looks like we got no XML document

Corrupted xml looks like:

<loyaltyReturn xsi:type="xsd:string">&lt;?xml version="1.0"?&gt;
&lt;

Code is:

ob_start();
$response = $this->soap->handle();
echo $response;

$out = ob_get_contents();

ob_end_clean();

echo $out;

exit;

I try add echo html_entity_decode($response); but still not work, where can be problem with encoding ?

Upvotes: 0

Views: 261

Answers (1)

Alex Blex
Alex Blex

Reputation: 37058

First of all SoapServer::handle returns no response. Construction like

$response = $this->soap->handle();
echo $response;

does not make much sense to me.

Secondly, patching corrupted request is a slippery slope. Don't encourage clients to send you junk and expect sensible response. You take a lot of responsibility to make weak assumptions which leads to unpredictable behaviour and hidden bugs in your server implementation.

The SOAP server should accept valid SOAP Envelope and reject everything else.

Upvotes: 1

Related Questions