2011-12-13 42 views
11

Puedo llamar a un servicio web desde la línea de comandos de Linux usando CURL. Ahora trato de usar wget para llamar a un servicio web pero siempre recibo el siguiente error: 500 Internal Server Error.Llamar al servicio web usando wget

estoy usando la siguiente sintaxis:

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

Dónde soapRequest.xml contiene la solicitud XML (validado por SoapUI).

El error volvió de wget es:

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. 

Respuesta

0

¿Está la presentación de la carga útil junto con jabón? ¿Intentó usar SOAPUI Client para verificar si hay una respuesta exitosa?

+0

Sí: si envío la misma carga utilizando SoapUI el servidor me da una respuesta correcta. – matteogll

4

tengo que usar --header="Content-Type: text/xml"

15

Usted no menciona qué servidor web que está utilizando, o cómo su URL tiene el formato, pero permite invocar una operación de servicio web escrito en .NET en IIS utilizar esta sintaxis:

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

El valor de "soapaction" se puede encontrar en el WSDL, o en la página de información que ASP.NET crea para la operación en myservice.asmx.

+0

Eso me ayuda mucho. Funciona bien con JBossWS. –

Cuestiones relacionadas