嗨,我在我的 php 应用程序中进行了一个肥皂调用
$options = array(
'soap_version' => SOAP_1_1,
'exceptions' => true,
'trace' => 1,
'cache_wsdl' => WSDL_CACHE_NONE,
'local_cert' => 'my.key',
);
$client = new SoapClient('http://domain.com/my.wsdl', $options);
var_dump($client->functionName($args));
Run Code Online (Sandbox Code Playgroud)
这导致异常
SOAP-ERROR: Encoding: Violation of encoding rules
Run Code Online (Sandbox Code Playgroud)
我想问题是服务器响应,因为
$client->__getLastResponse()
Run Code Online (Sandbox Code Playgroud)
包含一个好看的服务器响应,根据其他问题可能存在值类型不匹配。
是否可以找出导致此错误的值,或者是否可以禁用此检查?
小智 2
您可能是对的,问题出在服务器响应中,我遇到了类似的问题,返回的 XML 格式良好并且看起来不错,但它没有通过架构验证。
我不知道如何在 PHP 中调试它,我也想知道如何忽略此验证(和错误抛出),但这个答案帮助我找到了响应中的问题:https://stackoverflow.com/a/ 12171635/3999906