try
{
$client = new \SoapClient($wsdlUrl, array(
'cache_wsdl' => 0, 'exceptions' => true, 'trace' => true));
$client->getPage($parameter);
}
catch(\Exception $e)
{
die("exception");
}
好的,这就是执行SOAP请求的原因。 $ wsdlUrl保存WSDLs URL,$参数保存XML文档。
一切都像魅力一样!
现在我只是在$ parameter中为XML文档添加了更多节点,我发现了一个致命的错误。
这不是必须如此奇怪,但所需要的是以下三个观察结果的组合:
1)将异常设置为true ....但是没有抛出异常/ 这是b / c我忘了在catch语句中的Exception之前放置一个反斜杠。
2)而是记录错误:
PHP Fatal error: SoapClient::SoapClient():
'uri' option is required in nonWSDL mode in /var/w[...]
3)但提供了WSDL网址,当然也是有效的,因为在跳过添加新节点后再次正常工作。它们不会影响wsdl参数。
答案 0 :(得分:1)
好的,我找到了问题的根源。这个问题没有令人满意的答案,但很少有东西要学! :)
重要的是请求已由SOAP服务器发送和处理。 但服务器响应错误。
所以,显然,即使触发了没有wsdl和没有连接参数的致命错误并不意味着没有发送请求 - 这在我看来是非常合乎逻辑的b / c如果没有提供wsdl也没有连接参数,那么请求如何执行?
修改强>
代码中还有另一个错误。我忘了在Exception之前放一个反斜杠!没有它就没有引用Exception类。
然后抛出并捕获异常。