Call Web Service using wget

2019-03-18 16:36发布

问题:

I'm able to call a web service from Linux command line using CURL. Now I'm tryng to use wget to call a Web Service but I always receive the following error: 500 Internal Server Error.

I'm using the following syntax:

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

Where soapRequest.xml contains the XML request (validated by SoapUI).

The error returned from wget is:

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:

You don't mention which webserver you are using, or how your URL is formatted, but to invoke a web service operation written in .NET on IIS use this syntax:

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

The "soapaction" value can be found in the WSDL, or on the information page ASP.NET creates for the operation at myservice.asmx.



回答2:

I have to use --header="Content-Type: text/xml"



回答3:

Are you submitting the Payload along with SOAP? Did you try using SOAPUI Client to check whether there is a successful response?