2013-02-20 29 views

Trả lời

548

* nix cung cấp một lệnh nhỏ đẹp giúp cuộc sống của chúng ta dễ dàng hơn nhiều.

GET:

với JSON:

curl -i -H "Accept: application/json" -H "Content-Type: application/json" -X GET http://hostname/resource 

với XML:

curl -H "Accept: application/xml" -H "Content-Type: application/xml" -X GET http://hostname/resource 

POST:

Đối đăng dữ liệu:

curl --data "param1=value1&param2=value2" http://hostname/resource 

Đối với upload file:

curl --form "[email protected]" http://hostname/resource 

RESTful HTTP viết cuối:

curl -X POST -d @filename http://hostname/resource 

Đối với cách đăng nhập vào một trang web (auth):

curl -d "username=admin&password=admin&submit=Login" --dump-header headers http://localhost/Login 
curl -L -b headers http://localhost/ 

Khá-in kết quả curl:

Đối với JSON:

Nếu bạn sử dụng npmnodejs, bạn có thể cài đặt json gói bằng cách chạy lệnh này:

npm install -g json 

Cách sử dụng:

curl -i -H "Accept: application/json" -H "Content-Type: application/json" -X GET http://hostname/resource | json 

Nếu bạn sử dụng pippython, bạn có thể cài đặt pjson gói bằng cách chạy lệnh này:

pip install pjson 

Cách sử dụng:

curl -i -H "Accept: application/json" -H "Content-Type: application/json" -X GET http://hostname/resource | pjson 

Nếu bạn sử dụng Python 2.6+ , công cụ json được nhóm lại bên trong.

Cách sử dụng:

curl -i -H "Accept: application/json" -H "Content-Type: application/json" -X GET http://hostname/resource | python -m json.tool 

Nếu bạn sử dụng gemruby, bạn có thể cài đặt colorful_json gói bằng cách chạy lệnh này:

gem install colorful_json 

Cách sử dụng:

curl -i -H "Accept: application/json" -H "Content-Type: application/json" -X GET http://hostname/resource | cjson 

Nếu bạn sử dụng apt-get (người quản lý gói aptitude của distro Linux của bạn), bạn có thể cài đặt yajl-tools gói bằng cách chạy lệnh này:

sudo apt-get install yajl-tools 

Cách sử dụng:

curl -i -H "Accept: application/json" -H "Content-Type: application/json" -X GET http://hostname/resource | json_reformat 

Đối với XML:

Nếu bạn sử dụng * nix với Debian/Gnome envrionment , cài đặt libxml2-utils:

sudo apt-get install libxml2-utils 

Cách sử dụng:

curl -H "Accept: application/xml" -H "Content-Type: application/xml" -X GET http://hostname/resource | xmllint --format - 

hoặc cài đặt tidy:

sudo apt-get install tidy 

Cách sử dụng:

curl -H "Accept: application/xml" -H "Content-Type: application/xml" -X GET http://hostname/resource | tidy -xml -i - 

Tiết kiệm đáp ứng curl vào một tập tin

curl http://hostname/resource >> /path/to/your/file 

hoặc

curl http://hostname/resource -o /path/to/your/file 

Đối với mô tả chi tiết của lệnh curl, nhấn:

man curl 

Để biết chi tiết về các lựa chọn/switch của lệnh curl, nhấn:

curl -h 
+1

Nếu bạn đang chuyển hướng đến 'less', bạn có thể cần phải [thêm' -sS'] (http: // stackoverflow .com/a/21109454/52499). –

+0

Làm thế nào tôi có thể nhận được phản hồi để đưa vào một dòng lệnh khác? – emoleumassi

+0

? @emoleumassi? – James111

45

Tôi nghĩ Amith Koujalgi là chính xác nhưng cũng có thể, trong trường hợp các phản hồi webservice có trong JSON thì có thể sẽ hữu ích hơn khi xem các kết quả theo định dạng JSON sạch thay vì một chuỗi rất dài. Chỉ cần thêm | grep} | python -mjson.công cụ để kết thúc lệnh curl đây là hai ví dụ:

GET cách tiếp cận với kết quả JSON

curl -i -H "Accept: application/json" http://someHostName/someEndpoint | grep }| python -mjson.tool 

cách tiếp cận POST với kết quả JSON

curl -X POST -H "Accept: Application/json" -H "Content-Type: application/json" http://someHostName/someEndpoint -d '{"id":"IDVALUE","name":"Mike"}' | grep }| python -mjson.tool 

enter image description here

+1

Grep nghĩa vụ phải làm gì ở đây là gì? Tôi sử dụng sau đây với cùng một kết quả: 'curl -s -H" Chấp nhận: application/json "-H" Content-Type: application/json "-H" http: // $ {API_BASE_URL} $ {1} "| python -mjson.tool' – AVProgrammer

+0

các bạn có thể xem xét câu hỏi của tôi https://stackoverflow.com/questions/47526927/how-to-test-curl-commands-which-are-in-seaprate-file-and-get- số đếm –