Вызовите веб-службу с помощью 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 для проверки успешного ответа?