最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

使用curl命令的技巧

2023-03-08 11:24 作者:競(jìng)予科技  | 我要投稿

curl?是常用的命令行工具,用來(lái)請(qǐng)求?Web?服務(wù)器。它的名字就是客戶端的?URL?工具的意思。它的功能非常強(qiáng)大,命令行參數(shù)多達(dá)幾十種。如果熟練的話,完全可以取代?Postman?這一類的圖形界面工具。

  • 本文轉(zhuǎn)自?curl 的用法指南


使用curl命令的技巧


OpenSource: 總結(jié)的快捷鍵使用文檔


使用curl命令的技巧


本文介紹它的主要命令行參數(shù),作為日常的參考,方便查閱。不帶有任何參數(shù)時(shí),curl?就是發(fā)出?GET?請(qǐng)求。

# 向www.example.com發(fā)出 GET 請(qǐng)求$ curl https://www.example.com

1. -A 用戶代理

也可以通過(guò)?-H?參數(shù)直接指定標(biāo)頭更改?User-Agent?配置

  • 通過(guò)?-A?參數(shù)指定客戶端的用戶代理標(biāo)頭(User-Agent),而在默認(rèn)的情況下?curl?的默認(rèn)用戶代理字符串是?curl/[version],其中?version?表示對(duì)應(yīng)的版本號(hào)。

# 將User-Agent改成Chrome瀏覽器$ curl -A 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36' https://google.com# 移除User-Agent標(biāo)頭$ curl -A '' https://google.com# 通過(guò)-H參數(shù)直接指定標(biāo)頭更改User-Agent配置$ curl -H 'User-Agent: php/1.0' https://google.com

2. -b 發(fā)送 Cookie 信息

  • 通過(guò)?-b?參數(shù)用來(lái)向服務(wù)器發(fā)送自定義的?Cookie?信息。

# Cookie: foo=bar# 會(huì)生成一個(gè)標(biāo)頭向服務(wù)器發(fā)送一個(gè)名為foo,且值為bar的Cookie信息$ curl -b 'foo=bar' https://google.com# 發(fā)送兩個(gè)Cookie信息$ curl -b 'foo1=bar' -b 'foo2=baz' https://google.com# 讀取cookies.txt本地文件的Cookie信息,并將其發(fā)送到服務(wù)器$ curl -b cookies.txt https://www.google.com

3. -c 將 Cookie 寫(xiě)入文件

  • 通過(guò)?-c?參數(shù)將服務(wù)器設(shè)置的?Cookie?寫(xiě)入一個(gè)文件

# 將服務(wù)器的HTTP回應(yīng)所設(shè)置Cookie寫(xiě)入cookies.txt文本文件$ curl -c cookies.txt https://www.google.com

4. -d 發(fā)送 POST 請(qǐng)求的數(shù)據(jù)體

--data-urlencode等同于-d 參數(shù),發(fā)送 POST 請(qǐng)求的數(shù)據(jù)體,區(qū)別在于會(huì)自動(dòng)將發(fā)送的數(shù)據(jù)進(jìn)行 URL 編碼

  • 通過(guò)?-d?參數(shù)用于發(fā)送?POST?請(qǐng)求的數(shù)據(jù)體。使用?-d?參數(shù)以后,HTTP?請(qǐng)求會(huì)自動(dòng)加上標(biāo)頭?Content-Type: application/x-www-form-urlencoded。并且會(huì)自動(dòng)將請(qǐng)求轉(zhuǎn)為?POST?方法,因此可以省略?-X POST?參數(shù)。

# 發(fā)送POST請(qǐng)求的數(shù)據(jù)體$ curl -d 'login=emma&password=123'-X POST https://google.com/login $ curl -d 'login=emma' -d 'password=123' -X POST ?https://google.com/login# 讀取data.txt文件的內(nèi)容,作為數(shù)據(jù)體向服務(wù)器發(fā)送$ curl -d '@data.txt' https://google.com/login

# 發(fā)送的數(shù)據(jù)hello world之間有一個(gè)空格,需要進(jìn)行URL編碼$ curl --data-urlencode 'comment=hello world' https://google.com/login

5. -e 設(shè)置 HTTP 的標(biāo)頭 Referer 字段

  • 通過(guò)?-e?參數(shù)用來(lái)設(shè)置?HTTP?的標(biāo)頭?Referer,表示請(qǐng)求的來(lái)源。

# 將Referer標(biāo)頭設(shè)為https://google.com?q=example$ curl -e 'https://google.com?q=example' https://www.example.com# 通過(guò)-H參數(shù)可以通過(guò)直接添加標(biāo)頭Referer達(dá)到同樣效果$ curl -H 'Referer: https://google.com?q=example' https://www.example.com

6. -F 向服務(wù)器上傳二進(jìn)制文件

  • 通過(guò)?-F?參數(shù)用來(lái)向服務(wù)器上傳二進(jìn)制文件。

# 下面命令會(huì)給HTTP請(qǐng)求加上標(biāo)頭Content-Type: multipart/form-data# 然后將文件photo.png作為file字段上傳,類似于postman中的上傳文件一樣$ curl -F 'file=@photo.png' https://google.com/profile

  • 通過(guò)?-F?參數(shù)可以指定?MIME?類型。

# 指定MIME類型為image/png# 否則curl會(huì)把MIME類型設(shè)為application/octet-stream$ curl -F 'file=@photo.png;type=image/png' https://google.com/profile

  • 通過(guò)?-F?參數(shù)也可以指定文件名。

# 原始文件名為photo.png,但是服務(wù)器接收到的文件名為me.png$ curl -F 'file=@photo.png;filename=me.png' https://google.com/profile

7. -G 構(gòu)造 URL 的查詢字符串

  • 通過(guò)?-G?參數(shù)用來(lái)構(gòu)造?URL?的查詢字符串。

# 下面命令會(huì)發(fā)出一個(gè)GET請(qǐng)求,如果省略-G參數(shù)會(huì)發(fā)出一個(gè)POST請(qǐng)求# 實(shí)際請(qǐng)求的URL地址為 => https://google.com/search?q=kitties&count=20$ curl -G -d 'q=kitties' -d 'count=20' https://google.com/search# 如果數(shù)據(jù)需要URL編碼,可以結(jié)合--data--urlencode參數(shù)$ curl -G --data-urlencode 'comment=hello world' https://www.example.com

8. -H 添加 HTTP 請(qǐng)求的標(biāo)頭

  • 通過(guò)?-H?參數(shù)添加?HTTP?請(qǐng)求的標(biāo)頭。

# 添加HTTP標(biāo)頭 Accept-Language: en-US$ curl -H 'Accept-Language: en-US' https://google.com# 添加兩個(gè)HTTP標(biāo)頭$ curl -H 'Accept-Language: en-US' -H 'Secret-Message: xyzzy' https://google.com# 添加 HTTP 請(qǐng)求的標(biāo)頭是Content-Type: application/json# 然后通過(guò)-d參數(shù)發(fā)送JSON數(shù)據(jù)發(fā)送到服務(wù)器上面$ curl -d '{"login": "emma", "pass": "123"}' -H 'Content-Type: application/json' https://google.com/login

9. -i 打印服務(wù)器回應(yīng)的 HTTP 標(biāo)頭

  • 通過(guò)?-i?參數(shù)打印出服務(wù)器回應(yīng)的?HTTP?標(biāo)頭。

# 下面命令收到服務(wù)器回應(yīng)后,先輸出服務(wù)器回應(yīng)的標(biāo)頭,然后空一行,再輸出網(wǎng)頁(yè)的源碼$ curl -i https://www.example.com

10. -I 打印服務(wù)器回應(yīng)的 HEAD 標(biāo)頭

  • 通過(guò)?-I?參數(shù)向服務(wù)器發(fā)出?HEAD?請(qǐng)求,然會(huì)將服務(wù)器返回的?HTTP?標(biāo)頭打印出來(lái)。

# 輸出服務(wù)器對(duì)HEAD請(qǐng)求的回應(yīng)$ curl -I https://www.example.com# --head參數(shù)等同于-I參數(shù)$ curl --head https://www.example.com

11. -k 跳過(guò) SSL 檢測(cè)

  • 通過(guò)?-k?參數(shù)指定跳過(guò)?SSL?檢測(cè)。

# 不會(huì)檢查服務(wù)器的SSL證書(shū)是否正確$ curl -k https://www.example.com

12. -L 跟隨服務(wù)器的重定向

  • 通過(guò)?-L?參數(shù)會(huì)讓?HTTP?請(qǐng)求跟隨服務(wù)器的重定向,而?curl?默認(rèn)不跟隨重定向。

# 請(qǐng)求跟隨服務(wù)器的重定向$ curl -L -d 'tweet=hi' https://api.twitter.com/tweet

13. –limit-rate 限制請(qǐng)求和回應(yīng)的帶寬

  • 通過(guò)?--limit-rate?用來(lái)限制?HTTP?請(qǐng)求和回應(yīng)的帶寬,模擬慢網(wǎng)速的環(huán)境。

# 將帶寬限制在每秒200K字節(jié)$ curl --limit-rate 200k https://google.com

14. -o 將服務(wù)器的回應(yīng)保存成文件

  • 通過(guò)?-o?參數(shù)將服務(wù)器的回應(yīng)保存成文件,等同于?wget?命令。

# 將www.example.com保存成example.html文件$ curl -o example.html https://www.example.com

15. -O 將服務(wù)器的回應(yīng)保存成文件

  • 通過(guò)?-O?參數(shù)將服務(wù)器回應(yīng)保存成文件,并將?URL?的最后部分當(dāng)作文件名。

# 將服務(wù)器回應(yīng)保存成文件,文件名為bar.html$ curl -O https://www.example.com/foo/bar.html

16. -s 不輸出錯(cuò)誤和進(jìn)度信息

  • 通過(guò)?-s?參數(shù)將不輸出錯(cuò)誤和進(jìn)度信息。

# 一旦發(fā)生錯(cuò)誤,不會(huì)顯示錯(cuò)誤信息。不發(fā)生錯(cuò)誤的話,會(huì)正常顯示運(yùn)行結(jié)果$ curl -s https://www.example.com# 想讓curl不產(chǎn)生任何輸出,可以使用下面的命令$ curl -s -o /dev/null https://google.com

17. -S 只輸出錯(cuò)誤信息

  • 通過(guò)?-S?參數(shù)指定只輸出錯(cuò)誤信息,通常與?-s?一起使用。

# 沒(méi)有任何輸出,除非發(fā)生錯(cuò)誤$ curl -s -o /dev/null https://google.com

18. -u 設(shè)置認(rèn)證的用戶名和密碼

  • 通過(guò)?-u?參數(shù)用來(lái)設(shè)置服務(wù)器認(rèn)證的用戶名和密碼。

# 設(shè)置用戶名為bob,密碼為12345# 然后將其轉(zhuǎn)為HTTP標(biāo)頭 Authorization: Basic Ym9iOjEyMzQ1$ curl -u 'bob:12345' https://google.com/login# curl 能夠識(shí)別URL里面的用戶名和密碼$ curl https://bob:12345@google.com/login# 只設(shè)置了用戶名,執(zhí)行后curl會(huì)提示用戶輸入密碼$ curl -u 'bob' https://google.com/login

19. -v 打印調(diào)試信息

  • 通過(guò)?-v?參數(shù)輸出通信的整個(gè)過(guò)程,用于調(diào)試。

# 打印調(diào)試信息$ curl -v https://www.example.com# --trace參數(shù)也可以用于調(diào)試,還會(huì)輸出原始的二進(jìn)制數(shù)據(jù)。$ curl --trace - https://www.example.com

20. -x 設(shè)置請(qǐng)求代理

  • 通過(guò)?-x?參數(shù)指定?HTTP?請(qǐng)求的代理。

# 指定HTTP請(qǐng)求通過(guò)myproxy.com:8080的socks5代理發(fā)出$ curl -x socks5://james:cats@myproxy.com:8080 https://www.example.com# 如果沒(méi)有指定代理協(xié)議,默認(rèn)為 HTTP$ curl -x james:cats@myproxy.com:8080 https://www.example.com

21. -X 指定請(qǐng)求的方法

  • 通過(guò)?-X?參數(shù)指定?HTTP?請(qǐng)求的方法。

# 對(duì)https://www.example.com發(fā)出POST請(qǐng)求$ curl -X POST https://www.example.com




?文章作者:?Escape

?文章鏈接:?https://www.escapelife.site/posts/2e4a909a.html


使用curl命令的技巧的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
尼木县| 桦南县| 密山市| 嘉定区| 郸城县| 东莞市| 福建省| 华蓥市| 东城区| 眉山市| 怀集县| 宜丰县| 武义县| 辽中县| 逊克县| 萨嘎县| 镇赉县| 海城市| 广昌县| 阜新| 宾川县| 贵阳市| 墨脱县| 咸丰县| 卫辉市| 温宿县| 兴化市| 易门县| 阜平县| 从化市| 三原县| 乌审旗| 射洪县| 新晃| 双柏县| 兖州市| 汾阳市| 布拖县| 朝阳县| 东台市| 江油市|