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.
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.
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.
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
.
I have to use --header="Content-Type: text/xml"
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With