ragnar_ok
@ragnar_ok

Как реализовать запрос с использованием PHP SoapClient?

// Получаю экземпляр SoapClient
$url = "";
$client = new SoapClient($url, ["trace" => 1, "exception" => 0]); 
// Получаю список доступных SOAP-функций
$client->__getFunctions();

SoapClient::__getFunctions возвращает следующее:
array(2) {
  [0]=>
  string(44) "GetDataResponse GetData(GetData $parameters)"
  [1]=>
  string(44) "GetDataResponse GetData(GetData $parameters)"
}

Далее:
// Вызываю SOAP-функцию
$client->GetData($parameters);
// Возвращаю SOAP-ответ
$client->__getLastResponse();

SOAP-ответ приходит в виде вложенного XML документа. То есть придется парсить XML содержимое __last_response? Я правильно это делаю?
Если я не указываю при получении экземпляра SoapClient $options = ['trace' => 1, 'exception' => 0], то не получаю __last_response. Вместо этого я получаю указанное ниже. Почему?
object(SoapClient)#82 (5) {
  ["_soap_version"]=>
  int(1)
  ["sdl"]=>
  resource(5) of type (SOAP SDL)
  ["httpsocket"]=>
  resource(6) of type (stream)
  ["_use_proxy"]=>
  int(0)
  ["httpurl"]=>
  resource(7) of type (SOAP URL)
}
  • Вопрос задан
  • 320 просмотров
Решения вопроса 1
gzhegow
@gzhegow
aka "ОбнимиБизнесмена"
Если запрос не HTTPS рекомендую установить программу WireShark, и попробовать посмотреть в каком виде идут другие запросы. Потом можно составить запрос в виде текста и отправить его. А уже потом прикидывать как на это все навесить код, который в пыхе вшит под словом Soap.

Потому что в этом стандарте упрощающем жизни столько ада, что лучше б его не было
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
19 апр. 2024, в 03:52
1000 руб./за проект
19 апр. 2024, в 03:01
1000 руб./за проект
18 апр. 2024, в 21:56
2000 руб./за проект