原文地址html
cURL
是一款流行的標準化工具,用來在命令行上執行HTTP請求。在多數系統中被默認安裝。對於web開發者而言有效地使用cURL是一項重要的技能。Curl常被視爲調試與自動化HTTP請求的首選。react
你須要先理解HTTP協議才能很好地使用curl。若是你對此並不熟悉,能夠閱讀HTTP與REST新手指南和HTTPWatch的HTTP指南。git
若是你的系統中已經安裝了curl
,你能夠發起一個最基礎的請求:github
curl http://google.com
若是你想使用cURL來模擬form的提交,你能夠使用POST
請求:
你能夠向 GraphQL hub發起一個POST
請求。web
curl -H 'Content-Type:application/graphql' -XPOST https://www.graphqlhub.com/graphql?pretty=true -d '{ hn { topStories(limit: 2) { title url } } }'
注意這裏有三個可選參數:shell
-H
- 用於須要傳入HTTP頭(header)的情形。在本例中將傳入'Content-Type'爲'application/graphql'的HTTP頭。瀏覽器
-XPOST
- 用於須要POST
請求的情形。cookie
-d
- 用於其後的字符串是POST
body的情形。在本例中,使用GraphGL查詢從Hacker News取回了前兩位的提交。網絡
谷歌瀏覽器有一個逆天的功能,能夠將任意的HTTP操做複製爲cURL請求app
打開谷歌瀏覽器開發者工具
點擊'Network'切換按鈕
選擇一項你須要複製的網絡請求
右鍵並選擇"Copy as cURL"(個人版本是在"Copy"下有個二級菜單)
粘貼到"shell"
當你粘貼到shell中時你會發現很冗長,這是由於瀏覽器發送了巨多HTTP頭信息。雖然他們並會都對請求是否會成功其做用,但這是一個好的開始。當你須要驗證瀏覽器cookie或是調試一個受保護的請求時,該方法對你有很大幫助。
curl 'https://www.fullstackreact.com/assets/vendor/functions.js' -H 'if-none-match: W/"5dd95509e78d11579fc427e9f41889d6"' -H 'accept-encoding: gzip, deflate, sdch' -H 'accept-language: en-US,en;q=0.8' -H 'user-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.75 Safari/537.36' -H 'accept: */*' -H 'cache-control: max-age=0' -H 'authority: www.fullstackreact.com' -H 'cookie: __cfduid=d309889bd8e027d878c2e16e0176e764d1463427161; _ga=GA1.2.135748265.1463427163; _gat=1' -H 'if-modified-since: Tue, 15 Mar 2016 03:37:56 GMT' -H 'referer: https://www.fullstackreact.com/' --compressed
雖然在功能上並不是徹底一致,可是簡化後的請求能夠是這樣的:
curl 'https://www.fullstackreact.com/assets/vendor/functions.js'
若是想知道更多有關cURL的只是能夠參考: