недопустимый запрос SOAP - PullRequest
       9

недопустимый запрос SOAP

0 голосов
/ 26 августа 2018

Я использую savon для отправки запросов на сервис SOAP.

Несмотря на это, я не могу позвонить клиенту Savon.

ниже указан мой рубиновый код

client = Savon.client(
    wsdl: "https://<URL>",
    soap_header: { 'Content-Type:' => "text/xml"},
    log: true,    
    pretty_print_xml: true
)

client.call(:get_active_employees_info,:xmlns =>"http://tempuri.org/") do
  message("AppID" => "*******","Username" => "*****","Password" => "******")
end

, который возвращает

Savon::HTTPError: HTTP error (400)

, но те же фрагменты выполняются на Почтальоне

<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
  <soap12:Body>
    <GetActiveEmployeesInfo xmlns="http://tempuri.org/">
      <AppID>**********</AppID>
      <Username>********</Username>
      <Password>**********</Password>
    </GetActiveEmployeesInfo>
  </soap12:Body>
</soap12:Envelope>

1 Ответ

0 голосов
/ 27 августа 2018

Я думаю, что проблема связана с телом запроса, которое вы создаете.

Поскольку у вас есть рабочий пример, я бы начал с проверки сборки тела запроса с помощью savon.Для этого используйте следующий код:

 ops = client.operation(:get_active_employees_info)
 puts ops.build(message: {"AppID" => "*******","Username" => "*****","Password" => "******"}).pretty

Затем сравните сгенерированное сообщение с сообщением от Почтальона.Надеюсь, это поможет.

...