Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Call Web Service using wget

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.
like image 903
matteogll Avatar asked Dec 13 '11 08:12

matteogll


People also ask

How do you call a SOAP web service in Linux?

To test a SOAP web service, we just need to make HTTP requests with a SOAP envelope in the request body. We don't need to specify that we're using HTTP because it's the default protocol in cURL. Since we're testing the request, we use the verbose mode via the -v option.

How do I download a website using wget?

Let's start with something simple. Copy the URL for a file you'd like to download in your browser. Now head back to the Terminal and type wget followed by the pasted URL. The file will download, and you'll see progress in realtime as it does.


2 Answers

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.

like image 116
EventHorizon Avatar answered Sep 30 '22 04:09

EventHorizon


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

like image 39
Derek Avatar answered Sep 30 '22 05:09

Derek