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.
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.
Je dois utiliser --header="Content-Type: text/xml"
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?