web-dev-qa-db-fra.com

Appeler le service Web en utilisant wget

Je peux appeler un service Web à partir d'une ligne de commande Linux à l'aide de CURL. Maintenant, je suis tryng pour utiliser wget pour appeler un service Web, mais je reçois toujours le message d'erreur suivant: 500 Internal Server Error .

J'utilise la syntaxe suivante:

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

Où soapRequest.xml contient la demande XML (validée par SoapUI).

L'erreur renvoyée par wget est:

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.
12
matteogll

Vous ne mentionnez pas le serveur Web que vous utilisez, ni comment votre URL est formatée, mais pour appeler une opération de service Web écrite en .NET sur IIS, utilisez cette syntaxe:

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

La valeur "soapaction" se trouve dans le fichier WSDL ou dans la page d'informations créée par ASP.NET pour l'opération sur myservice.asmx.

16
EventHorizon

Je dois utiliser --header="Content-Type: text/xml"

4
Derek

Soumettez-vous la charge utile avec SOAP? Avez-vous essayé d’utiliser SOAPUI Client pour vérifier s’il y avait eu une réponse positive?

0
Chethan Thimmappa