doucai7294 2016-02-01 08:47
浏览 65
已采纳

PHP SOAP xml响应不解码xml标记

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 ?

  • 写回答

1条回答 默认 最新

  • doq70020 2016-02-01 09:46
    关注

    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.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?