[linux]使用curl進行GET、POST和網頁調試


以前在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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM