以前在win下開發的時候,習慣用的調試工具是谷歌自帶控制台和postman,谷歌控制台比較方便,但不能對請求進行重發,post雖然很好用,但是感覺還是有點‘大’。在linux下,其實完全沒有那么麻煩,系統自帶的curl足夠自用。curl是一個向服務器傳輸數據的工具,它支持http、https、ftp、ftps、scp、sftp、tftp、telnet等協議,這里只針對http進行講解一些常用的用法,當然還有其他諸如下載的功能參考:https://www.cnblogs.com/wildkid1024/p/10585665.html
GET請求
curl默認的請求即為GET請求,對應的參數直接拼接在url中即可。例子:
curl http://www.baidu.com/s?wd=curl
上述請求會上百度發起一條查詢請求,參數是wd=url
POST請求
使用post方式發送請求需要在參數里添加d參數,例子:
curl -d "name=test&page=1" http://www.baidu.com
只查看header
有時候不需要得到網頁的具體內容,只需要得到header,對應的參數為I
curl -I http://www.baidu.com
顯示通信過程
對於需要查看網絡狀況的情況下,可以添加-v參數來查看整個連接過程。
更進一步地,如果想看到更詳細的信息,使用:
curl --trace output.txt www.baidu.com
運行結束后在output.txt里查看具體的連接信息。
設置頭部信息
對於需要設置頭部信息的網頁,使用-H參數進行:
curl -H "Content-Type:application/json" http://example.com
或者設置header參數
curl --header "Content-Type:application/json" http://example.com
Referer字段
有時你需要在http request頭信息中,提供一個referer字段,表示你是從哪里跳轉過來的。
curl --referer http://www.example.com http://www.example.com
User Agent字段
這個字段是用來表示客戶端的設備信息。服務器有時會根據這個字段,針對不同設備,返回不同格式的網頁,比如手機版和桌面版。
iPhone4的User Agent是
Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_0 like Mac OS X; en-us) AppleWebKit/532.9 (KHTML, like Gecko) Version/4.0.5 Mobile/8A293 Safari/6531.22.7
curl可以這樣模擬:
curl --user-agent "[User Agent]" [URL]
cookies
對於需要保存cookies的網頁:
curl -c cookiec.txt http://www.linux.com
對於需要傳輸cookies的網頁:
curl -b cookiec.txt http://www.linux.com
自動跳轉
有時候網頁是需要跳轉的,這時就需要-L參數來設置自動跳轉:
curl -L http://github.com