Вызовите веб-службу с помощью wget

Я могу вызвать веб-службу из командной строки Linux, используя CURL. Теперь я пытаюсь использовать wget для вызова веб-службы, но всегда получаю следующую ошибку: 500 Внутренняя ошибка сервера.

Я использую следующий синтаксис:

wget http://<endPoint> --post-file=soapRequest.xml --header="Content-Type: application/soap+xml" --output-document=soapResponse.xml

Где soapRequest.xml содержит XML-запрос (подтвержденный SoapUI).

Ошибка, полученная от wget:

Connecting to <host:port>... connected.
HTTP request sent, awaiting response... 500 Internal Server Error
2011-12-12 23:18:33 ERROR 500: Internal Server Error.

Ответ 1

Вы не упоминаете, какой веб-сервер вы используете, или как форматируется ваш URL, но для вызова операции веб-службы, написанной в .NET на IIS, используйте следующий синтаксис:

wget --post-file=soaprequest.xml --header="Content-Type: text/xml" --header="SOAPAction: \"soapaction\"" http://server/app/myservice.asmx -O response.xml

Значение "soapaction" можно найти в WSDL или на информационной странице, которую ASP.NET создает для операции в myservice.asmx.

Ответ 2

Мне нужно использовать --header="Content-Type: text/xml"

Ответ 3

Вы отправляете полезную нагрузку вместе с SOAP? Вы пытались использовать SOAPUI Client для проверки успешного ответа?