curl 是一種命令行工具,作用是發出網絡請求,然后獲取數據,顯示在"標准輸出"(stdout)上面。它支持多種協議,下面列舉其常用功能。
一、查看網頁源碼
直接在 curl 命令后加上網址
> curl www.sina.com
二、自動跳轉
有的網址是自動跳轉的。使用 -L
參數,curl 就會跳轉到新的網址
> curl -L www.sina.com
三、顯示頭信息
-i
參數可以顯示 http response 的頭信息,連同網頁代碼一起。-I
參數則只顯示 http response 的頭信息。
> curl -i www.sina.com
四、顯示通信過程
-v
參數可以顯示一次 http 通信的整個過程,包括端口連接和 http request 頭信息。
> curl -v www.sina.com
五、發送表單信息
發送表單信息有 GET 和 POST 兩種方法。GET 方法相對簡單,只要把數據附在網址后面就行。
> curl example.com/form.cgi?data=xxx
POST 方法必須把數據和網址分開,curl 就要用到 --data
或者 -d
參數。
> curl -X POST --data "data=xxx" example.com/form.cgi
如果你的數據沒有經過表單編碼,還可以讓 curl 為你編碼,參數是 --data-urlencode
。
> curl -X POST--data-urlencode "date=April 1" example.com/form.cgi
六、HTTP動詞
curl 默認的 HTTP 動詞是 GET,使用 -X
參數可以支持其他動詞。
> curl -X POST www.example.com
> curl -X DELETE www.example.com
七、User Agent字段
這個字段是用來表示客戶端的設備信息。服務器有時會根據這個字段,針對不同設備,返回不同格式的網頁,比如手機版和桌面版。
瀏覽器的 User Agent 是: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.84 Safari/537.36
curl 可以這樣模擬:
> curl --user-agent "[User Agent]" [URL]
更多:
> curl --help