Неверный запрос на мыло с клиентом мыла - PullRequest
0 голосов
/ 01 февраля 2019

У меня есть следующий запрос, который я успешно тестирую с почтальоном:

curl -X POST \
  'https://dig-stage.crane.aero/craneota/CraneOTAService?wsdl=' \
  -H 'Content-Type: text/xml' \
  -H 'Postman-Token: 85f5fd96-5040-497e-9578-02dc63d91267' \
  -H 'cache-control: no-cache' \
  -d '<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:impl="http://impl.soap.ws.crane.hititcs.com/">
  <soapenv:Header/>
  <soapenv:Body>
    <impl:GetAirPortMatrix>
        <AirPortMatrixRequest>
          <clientInformation>
            <clientIP>127.0.0.1</clientIP>
            <member>false</member>
            <password>xxxxxx</password>
            <preferredCurrency>xxx</preferredCurrency>
            <preferredLanguage>xx</preferredLanguage>
            <userName>xxxxxx</userName>
          </clientInformation>
      </AirPortMatrixRequest>
    </impl:GetAirPortMatrix>
  </soapenv:Body>
</soapenv:Envelope>'

Теперь я пытаюсь использовать PHP-клиент мыла, чтобы выполнить тот же запрос от моего контроллера:

$client = new SoapClient("https://dig-stage.crane.aero/craneota/CraneOTAService?wsdl");
$response = $client->__soapCall("GetAirPortMatrix", ["AirportMatrixRequest" => [
      'clientIP' => '127.0.0.1',
      'member' => false,
      'password'   => 'xxxxxx',
      'preferredCurrency' => 'xxx',
      'userName' => 'xxxxxx'
]]);

Однако я получаю сообщение об ошибке сервера:

ERR_INVALID_REQUEST : Client information and Request object must be set properly

На данный момент я уверен, что я не правильно формирую запрос в PHP, как это сделал в Postman.

1 Ответ

0 голосов
/ 03 февраля 2019

Если вы хотите быть уверенным в правильности запроса, используйте генератор WSDL to PHP.Использование этого типа генератора приведет вас к PHP SDK с классами, которые соответствуют данным запроса и ответа, и классами для отправки запроса.Затем вам просто нужно создать экземпляр объекта, а затем передать объект данных запроса классу, который легко позволяет отправить запрос и обработать ответ, используя подход ООП.Кроме того, у вас будет полное автозаполнение с использованием IDE, например PhpStorm или Eclipse PDT.

Попробуйте проект PackageGenerator .

...