2008-09-17 39 views
44

Các bạn có biết cách tôi có thể sử dụng dòng lệnh Curl để POST SOAP để kiểm tra dịch vụ web không?Dòng lệnh Curl để tiêu thụ dịch vụ web?

Tôi có một tệp (soap.xml) có tất cả thông điệp xà phòng được đính kèm với nó Tôi dường như không thể đăng đúng cách.

Cảm ơn!

Trả lời

40

Đăng một chuỗi:

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

viết bài nội dung của một file:

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

Thường tiêu đề này cũng cần thiết: -H "Content-Type: application/xà phòng + xml; charset = UTF-8" – tokland

+0

@Luca Xin lưu ý dữ liệu phải được mã hóa URL. –

+2

Bắt 'HTTP/1.1 415 Loại phương tiện không được hỗ trợ' có nghĩa là tiêu đề loại nội dung bị thiếu hoặc sai. Hãy thử một trong những gợi ý ở đây ('application/soap + xml' không hoạt động đối với tôi, nhưng' text/xml' đã làm việc) – Nickolay

4

Nếu bạn muốn có một giao diện xốp hơn so với thiết bị đầu cuối, http://hurl.it/ là tuyệt vời.

+1

Các công cụ tương tự như hurl.it: http://stackoverflow.com/a/12637452/363573 – Stephan

33

Đối với một Webservice SOAP 1.2, tôi thường sử dụng

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

sai. Điều đó không hiệu quả đối với tôi.

Đối với tôi cái này hoạt động:

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

sử thi! cảm ơn vì đã dành thời gian để đăng ví dụ làm việc ACTUAL! –

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

Điều này làm việc cho tôi. Tuy nhiên, tôi cần phải đọc một giá trị trong soap.txt từ một tập tin. 'mã' < soapenv: Header /> 'code' – bernie

+1

tham số' -d @ soap.txt' cung cấp những gì bạn muốn. –

Các vấn đề liên quan