Привет я делаю мыльный звонок в моем приложении 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()
содержит красивый ответ сервера, в соответствии с другими вопросами, вероятно, существует несоответствие типа значения.
Можно ли выяснить, какое значение вызывает эту ошибку, или можно отключить эту проверку?
Вы, вероятно, правы, и проблема в ответе сервера, у меня была похожая проблема, возвращенный XML был хорошо отформатирован и выглядел хорошо, но он не прошел проверку схемы.
Я не знаю, как отладить его в PHP, и я также хотел бы знать, как игнорировать эту проверку (и выдачу ошибок), но этот ответ помог мне найти проблему в ответе: https://stackoverflow.com/a/12171635/3999906
Других решений пока нет …