如何在PHP中忽略或检查“SOAP-ERROR:编码:违反编码规则”

时间:2014-09-25 12:18:47

标签: php soap

我在我的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));

导致异常

SOAP-ERROR: Encoding: Violation of encoding rules

我猜问题是服务器响应,因为

$client->__getLastResponse()

包含一个外观漂亮的服务器响应,根据其他问题,可能存在值类型不匹配。

是否可以找出导致此错误的值或是否可以禁用此检查?

1 个答案:

答案 0 :(得分:1)

您可能是对的,并且问题出在服务器响应中,我遇到了类似的问题,返回的XML格式正确且看起来不错,但未通过架构验证。

我不知道如何在PHP中调试它,我也想知道如何忽略此验证(和错误抛出),但是此答案帮助我找到了问题所在:https://stackoverflow.com/a/12171635/3999906