2008-09-17 20 views
44

Czy wiecie, w jaki sposób mogę użyć wiersza poleceń Curl do POST SOAP, aby przetestować usługę sieciową?Linia poleceń Curl do korzystania z WebServices?

Mam plik (soap.xml), który ma dołączoną do niego wiadomość z mydłem, ale wydaje mi się, że nie mogę go poprawnie opublikować.

Dzięki!

Odpowiedz

40

zamieszczaniu ciąg:

curl -d "String to post" "http://www.example.com/target" 

zaksięgowania zawartość pliku:

curl -d @soap.xml "http://www.example.com/target" 
+21

Zazwyczaj ten nagłówek jest również konieczne: H "Content-Type: application/xml mydło +; charset = UTF-8" – tokland

+0

@Luca Uwaga że dane powinny być zakodowane za pomocą adresu URL. –

+2

Uzyskiwanie "HTTP/1.1 415 Nieobsługiwany typ nośnika" oznacza brak nagłówka typu treści lub błąd. Wypróbuj jeden z sugerowanych tutaj ('application/soap + xml' nie działał dla mnie, ale' text/xml' działał) – Nickolay

4

Jeśli chcesz fluffier interfejs niż terminalu http://hurl.it/ jest niesamowite.

+1

Podobne narzędzia do hurl.it: http://stackoverflow.com/a/12637452/363573 – Stephan

33

Dla Webservice SOAP 1.2, normalnie używam

curl --header "content-type: application/soap+xml" --data @filetopost.xml http://domain/path 
25

Zła. To nie działa dla mnie.

Dla mnie ten działa:

curl -H 'SOAPACTION: "urn:samsung.com:service:MainTVAgent2:1#CheckPIN"' -X POST -H 'Content-type: text/xml' -d @/tmp/pinrequest.xml 192.168.1.5:52235/MainTVServer2/control/MainTVAgent2 
+3

epicki! dziękuję za poświęcenie czasu, aby opublikować RZECZYWISTY przykład pracy! –

8
curl -H "Content-Type: text/xml; charset=utf-8" \ 
-H "SOAPAction:" \ 
-d @soap.txt -X POST http://someurl 
+1

To działa ode mnie. Jednak muszę odczytać wartość w pliku soap.txt z pliku. 'kod' < soapenv: Nagłówek /> '' -d code' – bernie

+1

@ soap.txt' parametr zapewnia to, czego chcesz. –