#php #laravel #soap #soapui #soap-client
#php #laravel #soap #soapui #soap-client
Вопрос:
Я пытаюсь выполнить вызов soap и продолжаю получать следующую ошибку:
похоже, мы не получили XML-документа
РЕДАКТИРОВАТЬ сообщение об ошибке
вот пример, который отлично работает в моем SOAP UI
Вот мой массив, который я отправляю на свой soapCall:
$params = [
'id' => '0000002721',
'options' => [
'returnAttachments' => 'false',
'returnPictures' => 'false',
'returnContract' => 'false'
]
];
Вот код, как я выполняю вызов soap
try {
$options = array(
'ssl' => array(
'verify_peer' => false,
'verify_peer_name' => false,
'allow_self_signed' => true
)
);
$context = stream_context_create($options);
$soapClient = new SoapClient(__DIR__ . '/Soap.wsdl', [
'stream_context' => $context,
'login' => 'login',
'password' => 'password',
'trace' => 1,
'exceptions' => true,
]);
$soapClient->__setLocation('url');
$this->soapClient = $soapClient;
} catch (SoapFault $e) {
var_dump($e); exit;
}
try {
$result = $this->soapClient->__soapCall('getMaintenanceObject', $params);
} catch (SoapFault $e) {
var_dump($e); exit;
}
Ответ №1:
SoapClient может быть не очень выразительным, когда дело доходит до отображения ошибок, добавьте это:
var_dump($this->soapClient->__getLastRequestHeaders());
var_dump($this->soapClient->__getLastResponseHeaders());
Комментарии:
1. к сожалению, это ничего не дает.
2. Отображает ли он вообще что-нибудь? У меня были подобные проблемы раньше, если у вас возникли проблемы с аутентификацией или что-то подобное, они будут скрыты, и вы получите пустые XML-файлы, как у вас, и фактический ответ может быть визуализирован только с помощью строк, которые я опубликовал.
3. Я добавил скриншот результата, который я получаю в своем браузере
4. Добавьте две строки var_dump, которые я опубликовал после
} catch (SoapFault $e) {
и посмотрите, получите ли вы какую-то информацию. Информация не была изначально сброшена, потому что создавался SoapFault.