Вопрос по shell, soap, unix – Вызов SOAP-запроса из команды оболочки

7

Я использую curl для отправки SOAP-запроса в веб-службу и получения ответа с использованием сценариев оболочки. пожалуйста, найдите ниже команду, которую я использую: -

curl  -H "Content-Type: text/xml; charset=utf-8" -H "SOAPAction:" -d @sample_request.txt -X POST http://someWebServiceURL

Я получаю сообщение об ошибке, в котором говорится, что заголовок SOAPAction отсутствует. PFB часть тела ответа

<soapenv:Body>
<soapenv:Fault>
<faultcode>Client.NoSOAPAction</faultcode>
<faultstring>WSWS3147E: Error: no SOAPAction header!</faultstring>
</soapenv:Fault>
</soapenv:Body>

Любая помощь приветствуется !!

Ваш Ответ

2   ответа
8

Вам необходимо указать имя действия SOAP. У тебя есть

-H "SOAPAction:"

Введите название действия там. Например

-H "SOAPAction: http://my_example/my_action"

Получите название действия из WSDL, если оно у вас есть. Например, см. Как вы определяете действительный SoapAction?.

Не забудьте процитировать URI в заголовке SoapAction - спецификация требует, чтобы, если он не был нулевым, то он должен был заключаться в двойные кавычки, т.SOAPAction: "http://my_example/my_action" Petesh
0

которую вы пытаетесь вызвать и получить доступ к WSDL, открыв веб-браузер для URL-адреса службы. Используя Curl для вызова SoapAction, вы должны указать Действие с помощью -H, например -H SOAPAction:http: //tempuri.org/Execut.

Есть ли другой способ в bash linux сделать это без curl? Asaf Magen

Похожие вопросы