SOAP服务器尝试返回损坏的xml,我收到错误:looks like we got no XML document
损坏的xml看起来像:
<loyaltyReturn xsi:type="xsd:string"><?xml version="1.0"?>
<
代码是:
ob_start();
$response = $this->soap->handle();
echo $response;
$out = ob_get_contents();
ob_end_clean();
echo $out;
exit;
我尝试添加echo html_entity_decode($response);
但仍无法正常工作,编码可能会出现问题?
答案 0 :(得分:1)
首先SoapServer::handle不返回任何回复。像
这样的建设$response = $this->soap->handle();
echo $response;
对我来说没有多大意义。
其次,修补损坏的请求是一个滑坡。不要鼓励客户向您发送垃圾并期待合理的回应。你承担了很多责任,做出微弱的假设,导致你的服务器实现中出现不可预测的行为和隐藏的错误。
SOAP服务器应该接受valid SOAP Envelope并拒绝其他所有内容。