Использование веб-сервиса и изменение конечной точки с SOAPCLIENT - PullRequest
1 голос
/ 13 февраля 2012

Я использую сторонний веб-сервис и использую soapUI для его тестирования. Мне посоветовали загрузить WSDL, оставить его без изменений, затем изменить конечную точку в SOAPUI перед выполнением вызовов к конечным точкам. Это работает нормально и ведет себя так, как я и ожидал.

Я сейчас пытаюсь эмулировать это в PHP, но у меня возникают проблемы при изменении конечной точки. Я загружаю WSDL в SOAPCLIENT и затем использую эту команду для изменения конечной точки:

$client->__setLocation($endpointURI);

Однако это не так, как я ожидал, и выдает ответ «500: Внутренняя ошибка сервера», когда я иду, чтобы сделать мыльный вызов после изменения местоположения / конечной точки. Я уверен, что все остальные параметры верны, и мне было интересно, если кто-нибудь мог бы пролить свет на проблему и подтвердить, что выполнение этого «set location» cmd должно быть эквивалентно изменению конечной точки вручную в SOAPUI.

Любые идеи / мнения приветствуются.

Ответы [ 2 ]

0 голосов
/ 23 января 2015

Попробуйте вызвать __soapCall с переопределением местоположения там:

$result = $this->soap_client->__soapCall('whatever', ['location' => $file_location]);

Я обнаружил, что __setLocation не работает, пока вышеописанный обходной путь работает.

0 голосов
/ 20 апреля 2012

При создании экземпляра SoapClient попытайтесь добавить ключ массива с именем 'location' с новой конечной точкой.

$options = array('login' => 'x', 'password' => 'y', 'location' => $endpointURI);
$client = new SoapClient($address, $options);
...