curl 是常用的命令行工具,用來請求 Web 服務器。它的名字就是客戶端(client)的 URL 工具的意思。
它的功能非常強大,命令行參數多達幾十種。如果熟練的話,完全可以取代 Postman 這一類的圖形界面工具。
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-7aHduX6w-1597403478458)(https://www.wangbase.com/blogimg/asset/201909/bg2019090501.jpg)]
不帶有任何參數時,curl 就是發出 GET 請求。
$ curl https://www.example.com
上面命令向www.example.com
發出 GET 請求,服務器返回的內容會在命令行輸出。
-A
參數指定客戶端的用戶代理標頭,即User-Agent
。curl 的默認用戶代理字符串是curl/[version]
。
$ 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
改成 Chrome 瀏覽器。
$ curl -A '' https://google.com
上面命令會移除User-Agent
標頭。
也可以通過-H
參數直接指定標頭,更改User-Agent
。
$ curl -H 'User-Agent: php/1.0' https://google.com
-b
參數用來向服務器發送 Cookie。
$ curl -b 'foo=bar' https://google.com
上面命令會生成一個標頭Cookie: foo=bar
,向服務器發送一個名為foo
、值為bar
的 Cookie。
$ curl -b 'foo1=bar;foo2=bar2' https://google.com
上面命令發送兩個 Cookie。
$ curl -b cookies.txt https://www.google.com
上面命令讀取本地文件cookies.txt
,里面是服務器設置的 Cookie(參見-c
參數),將其發送到服務器。
-c
參數將服務器設置的 Cookie 寫入一個文件。
$ curl -c cookies.txt https://www.google.com
上面命令將服務器的 HTTP 回應所設置 Cookie 寫入文本文件cookies.txt
。
-d
參數用于發送 POST 請求的數據體。
$ 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
使用-d
參數以后,HTTP 請求會自動加上標頭Content-Type : application/x-www-form-urlencoded
。并且會自動將請求轉為 POST 方法,因此可以省略-X POST
。
-d
參數可以讀取本地文本文件的數據,向服務器發送。
$ curl -d '@data.txt' https://google.com/login
上面命令讀取data.txt
文件的內容,作為數據體向服務器發送。
--data-urlencode
參數等同于-d
,發送 POST 請求的數據體,區別在于會自動將發送的數據進行 URL 編碼。
$ curl --data-urlencode 'comment=hello world' https://google.com/login
上面代碼中,發送的數據hello world
之間有一個空格,需要進行 URL 編碼。
-e
參數用來設置 HTTP 的標頭Referer
,表示請求的來源。
curl -e 'https://google.com?q=example' https://www.example.com
上面命令將Referer
標頭設為https://google.com?q=example
。
-H
參數可以通過直接添加標頭Referer
,達到同樣效果。
curl -H 'Referer: https://google.com?q=example' https://www.example.com
-F
參數用來向服務器上傳二進制文件。
$ curl -F 'file=@photo.png' https://google.com/profile
上面命令會給 HTTP 請求加上標頭Content-Type: multipart/form-data
,然后將文件photo.png
作為file
字段上傳。
-F
參數可以指定 MIME 類型。
$ curl -F 'file=@photo.png;type=image/png' https://google.com/profile
上面命令指定 MIME 類型為image/png
,否則 curl 會把 MIME 類型設為application/octet-stream
。
-F
參數也可以指定文件名。
$ curl -F 'file=@photo.png;filename=me.png' https://google.com/profile
上面命令中,原始文件名為photo.png
,但是服務器接收到的文件名為me.png
。
-G
參數用來構造 URL 的查詢字符串。
$ curl -G -d 'q=kitties' -d 'count=20' https://google.com/search
上面命令會發出一個 GET 請求,實際請求的 URL 為https://google.com/search?q=kitties&count=20
。如果省略--G
,會發出一個 POST 請求。
如果數據需要 URL 編碼,可以結合--data--urlencode
參數。
$ curl -G --data-urlencode 'comment=hello world' https://www.example.com
-H
參數添加 HTTP 請求的標頭。
$ curl -H 'Accept-Language: en-US' https://google.com
上面命令添加 HTTP 標頭Accept-Language: en-US
。
$ curl -H 'Accept-Language: en-US' -H 'Secret-Message: xyzzy' https://google.com
上面命令添加兩個 HTTP 標頭。
$ curl -d '{"login": "emma", "pass": "123"}' -H 'Content-Type: application/json' https://google.com/login
上面命令添加 HTTP 請求的標頭是Content-Type: application/json
,然后用-d
參數發送 JSON 數據。
-i
參數打印出服務器回應的 HTTP 標頭。
$ curl -i https://www.example.com
上面命令收到服務器回應后,先輸出服務器回應的標頭,然后空一行,再輸出網頁的源碼。
-I
參數向服務器發出 HEAD 請求,然會將服務器返回的 HTTP 標頭打印出來。
$ curl -I https://www.example.com
上面命令輸出服務器對 HEAD 請求的回應。
--head
參數等同于-I
。
$ curl --head https://www.example.com
-k
參數指定跳過 SSL 檢測。
$ curl -k https://www.example.com
上面命令不會檢查服務器的 SSL 證書是否正確。
-L
參數會讓 HTTP 請求跟隨服務器的重定向。curl 默認不跟隨重定向。
$ curl -L -d 'tweet=hi' https://api.twitter.com/tweet
--limit-rate
用來限制 HTTP 請求和回應的帶寬,模擬慢網速的環境。
$ curl --limit-rate 200k https://google.com
上面命令將帶寬限制在每秒 200K 字節。
-o
參數將服務器的回應保存成文件,等同于wget
命令。
$ curl -o example.html https://www.example.com
上面命令將www.example.com
保存成example.html
。
-O
參數將服務器回應保存成文件,并將 URL 的最后部分當作文件名。
$ curl -O https://www.example.com/foo/bar.html
上面命令將服務器回應保存成文件,文件名為bar.html
。
-s
參數將不輸出錯誤和進度信息。
$ curl -s https://www.example.com
上面命令一旦發生錯誤,不會顯示錯誤信息。不發生錯誤的話,會正常顯示運行結果。
如果想讓 curl 不產生任何輸出,可以使用下面的命令。
$ curl -s -o /dev/null https://google.com
-S
參數指定只輸出錯誤信息,通常與-s
一起使用。
$ curl -s -o /dev/null https://google.com
上面命令沒有任何輸出,除非發生錯誤。
-u
參數用來設置服務器認證的用戶名和密碼。
$ curl -u 'bob:12345' https://google.com/login
上面命令設置用戶名為bob
,密碼為12345
,然后將其轉為 HTTP 標頭Authorization: Basic Ym9iOjEyMzQ1
。
curl 能夠識別 URL 里面的用戶名和密碼。
$ curl https://bob:12345@google.com/login
上面命令能夠識別 URL 里面的用戶名和密碼,將其轉為上個例子里面的 HTTP 標頭。
$ curl -u 'bob' https://google.com/login
上面命令只設置了用戶名,執行后,curl 會提示用戶輸入密碼。
-v
參數輸出通信的整個過程,用于調試。
$ curl -v https://www.example.com
--trace
參數也可以用于調試,還會輸出原始的二進制數據。
$ curl --trace - https://www.example.com
-x
參數指定 HTTP 請求的代理。
$ curl -x socks5://james:cats@myproxy.com:8080 https://www.example.com
上面命令指定 HTTP 請求通過myproxy.com:8080
的 socks5 代理發出。
如果沒有指定代理協議,默認為 HTTP。
$ curl -x james:cats@myproxy.com:8080 https://www.example.com
上面命令中,請求的代理使用 HTTP 協議。
-X
參數指定 HTTP 請求的方法。
$ curl -X POST https://www.example.com
es:cats@myproxy.com:8080 https://www.example.com
上面命令指定 HTTP 請求通過myproxy.com:8080
的 socks5 代理發出。
如果沒有指定代理協議,默認為 HTTP。
$ curl -x james:cats@myproxy.com:8080 https://www.example.com
上面命令中,請求的代理使用 HTTP 協議。
-X
參數指定 HTTP 請求的方法。
$ curl -X POST https://www.example.com
上面命令對https://www.example.com
發出 POST 請求。
127849.html
本文由 貴州做網站公司 整理發布,部分圖文來源于互聯網,如有侵權,請聯系我們刪除,謝謝!
網絡推廣與網站優化公司(網絡優化與推廣專家)作為數字營銷領域的核心服務提供方,其價值在于通過技術手段與策略規劃幫助企業提升線上曝光度、用戶轉化率及品牌影響力。這...
在當今數字化時代,公司網站已成為企業展示形象、傳遞信息和開展業務的重要平臺。然而,對于許多公司來說,網站建設的價格是一個關鍵考量因素。本文將圍繞“公司網站建設價...
在當今的數字化時代,企業網站已成為企業展示形象、吸引客戶和開展業務的重要平臺。然而,對于許多中小企業來說,高昂的網站建設費用可能會成為其發展的瓶頸。幸運的是,隨...
csgoiem全球總決賽賽制?還有期末考試。IEM8卡托維茲世界總決賽是繼S3世界總決賽之后第一個真正意義上的LOL國際賽事。IEM8卡托維茲世界總決賽是繼S3世界總決賽之后第一個真正意義上的LOL國際賽事。八支隊伍分成兩組,老對手之間的競爭再次被點燃,新對手也可能出現。雙循環賽制保證了觀眾可以看到各隊之間多樣化的比賽,也給了各隊真正展示實力,爭奪冠軍的機會。we戰隊榮譽都有哪些?2011年WCG...
如何在ppt中插入滾動的圖片和音樂?是什么樣子滾動的圖片,滾動的音樂是指從幻燈片開始一直播放到幻燈片結束??自動播放的話這在PPT中最普通啦,自定義動畫中直接設置動畫的開始時間,一般給對象添加動畫后默認的是點擊鼠標開始動畫,然后你可以自己改成從上一項開始,也可以自己定義動畫從什么時間開始播放~~ PPT如何使多張圖片在一張幻燈片中循環滾動播放?使PPT中一張幻燈片中的多張圖片循環播放的步驟:1、選...
MacBookAir上能用迅雷下東西嗎?用迅雷直接下載東西,是需要先下載迅雷MAC版本。,在這個地址去下載迅雷;2.下載結束按裝迅雷安裝包;3.先打開迅雷,能找到上網下載的文件的網址,圖片文件夾,粘帖到迅雷里面就可以不直接下載。不過和win系統下上網下載的方法是完全不一樣的。注:操作的過程中,絕對的保證電腦電量充足,避免引響都正常你操作。mac裝了迅雷怎么不能用迅雷下載???直接出現情況不是你按裝的...