2011-11-17 36 views
20

Tôi đang xây dựng một dịch vụ web cho một ứng dụng web và tôi muốn một công cụ đơn giản để kiểm tra điều này khi tôi đang phát triển. Tôi đã thử một số plug-in firefox (Poster, 'REST Client'), và mặc dù các công việc này tốt tôi đã không thể tải lên các tập tin với họ.Cách kiểm tra dịch vụ web bằng cách sử dụng lệnh curl

Ngoài ra, tôi muốn có một công cụ dòng lệnh mà tôi có thể sử dụng để dễ dàng viết một bộ kiểm tra tích hợp cho dịch vụ web này và tôi có thể gửi cho người tiêu dùng dịch vụ web này làm ví dụ.

Tôi biết rằng curl có thể hoạt động cho điều này nhưng muốn có một vài ví dụ, đặc biệt là xung quanh xác thực (sử dụng HTTP cơ bản) và tải tệp lên.

Trả lời

15

Ngoài câu trả lời hiện nó thường là mong muốn để định dạng đầu ra REST (thường JSON và XML thiếu thụt đầu dòng). Hãy thử điều này:

$ curl https://api.twitter.com/1/help/configuration.xml | xmllint --format - 
$ curl https://api.twitter.com/1/help/configuration.json | python -mjson.tool 

Thử nghiệm trên Ubuntu 11.0.4/11.10.

Một vấn đề khác là loại nội dung mong muốn. Twitter sử dụng .xml/.json gia hạn, nhưng yên thành ngữ hơn sẽ yêu cầu Accept tiêu đề:

$ curl -H "Accept: application/json" 
+0

Cám ơn những bổ sung. –

+0

Tôi nhận được lỗi này khi tôi cố gắng sử dụng ví dụ của bạn: 'xmllint' không được công nhận là lệnh nội bộ hoặc bên ngoài, chương trình có thể hoạt động hoặc tệp lô. Có lẽ một cái gì đó đã thay đổi trong 5 năm qua? – influent

+0

@influent, điều này có nghĩa là xmllint chưa được cài đặt –

19

Trả lời câu hỏi của riêng tôi.

curl -X GET --basic --user username:password \ 
    https://www.example.com/mobile/resource 

curl -X DELETE --basic --user username:password \ 
    https://www.example.com/mobile/resource 

curl -X PUT --basic --user username:password -d 'param1_name=param1_value' \ 
    -d 'param2_name=param2_value' https://www.example.com/mobile/resource 

đăng một tập tin và tham số bổ sung

curl -X POST -F '[email protected]/filepath/filename' \ 
    -F 'extra_param_name=extra_param_value' --basic --user username:password \ 
    https://www.example.com/mobile/resource 
2

Từ các tài liệu trên http://curl.haxx.se/docs/httpscripting.html:

HTTP Authentication

curl --user name:password http://www.example.com 

Đặt một tập tin vào một máy chủ HTTP với curl:

curl --upload-file uploadfile http://www.example.com/receive.cgi 

Gửi bài dữ liệu với curl:

curl --data "birthyear=1905&press=%20OK%20" http://www.example.com/when.cgi 
Các vấn đề liên quan