2011-12-13 11 views
11

Jestem w stanie wywołać usługę internetową z wiersza poleceń systemu Linux przy użyciu CURL. Teraz próbuję użyć wget do wywołania usługi sieci Web, ale zawsze pojawia się następujący błąd: 500 Błąd wewnętrznego serwera.Zadzwoń do serwisu internetowego za pomocą wget

używam następującą składnię:

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

Gdzie soapRequest.xml zawiera żądanie XML (zatwierdzoną przez SoapUI).

Błąd wrócił z wget jest:

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. 

Odpowiedz

0

Czy złożenie ładunek wraz z mydłem? Czy próbowałeś użyć klienta SOAPUI, aby sprawdzić, czy udało się uzyskać odpowiedź?

+0

Tak: jeśli przesyłam ten sam ładunek za pomocą SoapUI, serwer daje mi prawidłową odpowiedź. – matteogll

4

muszę używać --header="Content-Type: text/xml"

15

Nie wspominając który WEBSERVER używasz, albo jak adres URL jest sformatowany, ale do wywołania operacji usługi internetowej napisany w .NET na IIS użyć tej składni:

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

"Wartość mydła" można znaleźć w pliku WSDL lub na stronie informacyjnej ASP.NET tworzy dla operacji w myservice.asmx.

+0

To mi bardzo pomaga. Działa dobrze z JBossWS. –

Powiązane problemy