linux不是默認(rèn)安裝cURL的。curl是一個利用URL在命令行工作的文件傳輸工具,并不是所有的linux系統(tǒng)中都會自帶curl命令,例如簡潔版的Linux系統(tǒng)就可能并不存在,只需通過執(zhí)行“yum install curl”命令安裝即可。
本教程操作環(huán)境:linux5.9.8系統(tǒng)、Dell G3電腦。
curl 命令
Linux 系統(tǒng)中的 curl 命令是一個利用 URL 在命令行工作的文件傳輸工具,通常用于 Linux 系統(tǒng)中服務(wù)的訪問和文件的下載。
curl 命令支持http、https、FTP等多種協(xié)議,可用于服務(wù)請求的模擬和文件的上傳下載。
linux默認(rèn)安裝curl嗎?
linux不是默認(rèn)安裝curl。
并不是所有的系統(tǒng)中都會自帶 curl 命令,對于簡潔版的 Linux 系統(tǒng)可能并不存在,此時可以使用 yum 命令來安裝 curl,yum install curl。
安裝完成后,可以使用curl –version命令查看系統(tǒng)中 curl 的版本信息。
curl 命令的語法格式
curl 命令的標(biāo)準(zhǔn)使用語法是:curl [options] [url],其中 options 用于指定參數(shù)項,url是請求的服務(wù)地址。
不使用參數(shù)項執(zhí)行請求:curl http://www.baidu.com,該情況下命令執(zhí)行會直接請求指定的服務(wù)地址,并將請求結(jié)果源代碼輸出到 Linux 命令行中。
相關(guān)參數(shù):
curl 命令通過不同的參數(shù)項實現(xiàn)了豐富的功能,常見的參數(shù)項有:
-
-i,即 –head,表示請求結(jié)果顯示響應(yīng)頭信息
-
-o,即 –output,后跟文件路徑,表示將請求結(jié)果寫入到指定文件中
-
-s,即 –silent,靜默模式,表示此時請求結(jié)果不會出現(xiàn)額外信息
-
-w,即 –write-out [format],參數(shù)后跟格式串,表示命令執(zhí)行完成后指定輸出內(nèi)容
通常在測試接口是否正常時可以使用命令:
curl?-o?/dev/NULL?-s?-w?%{http_code}?http://www.baidu.com
此時服務(wù)的返回源碼寫入到空地址null中,且開啟靜默模式,并在請求后輸出http狀態(tài)碼,如請求成功,則返回 200。
對于 curl 的更多可用參數(shù)項,可以使用 curl -h/–help 查詢。
使用 curl 上傳和下載文件
1、文件上傳
curl 中提供了上傳文件的命令參數(shù),可以通過 -F 后跟文件信息發(fā)起請求
curl?-F?'file=@test.png;type=image/png'?http://www.baidu.com/upload
其中,需要注意的是:
使用-F參數(shù)時,curl認(rèn)為是上傳文件,會默認(rèn)指定-H Content-Type: multipart/form-datas,表示使用文件上傳的格式
-F參數(shù)指定文件信息時,可以指定多個文件以及文件類型,多個參數(shù)使用;分隔
2、文件下載
curl 命令中下載文件的方式有很多種,分別是:
-
對于請求得到的結(jié)果數(shù)據(jù),可以使用Linux種的重定向功能保存到文件 … >> index.html
-
使用-o/-O參數(shù)請求文件并保存,curl -o a.jpg http://www.baidu.com/b.jpg
-
請求下載文件是,可以同時指定-#參數(shù),這樣會顯示文件下載的進(jìn)度,使用-s關(guān)閉
-
如果文件下載過程停止,可以增加-C參數(shù)執(zhí)行文件的斷點續(xù)傳
使用 curl 模擬 GET/POST 請求
curl 命令支持 POST 請求、Cookies、認(rèn)證等操作,因此還可以很好的應(yīng)用于開發(fā)過程中服務(wù)接口請求的模擬。
1、模擬 GET 請求
GET 請求其實就是最簡單的服務(wù)請求,是通過 url 拼接的方式攜帶參數(shù)信息,因此直接使用 curl 最簡單的請求方式即可。
開發(fā)過程中模擬 GET 請求獲取數(shù)據(jù):
curl?http://localhost:8080/getUserInfo?id=1。
2、模擬 POST 請求
POST 請求是作為數(shù)據(jù)提交的一種方式,在請求服務(wù)地址時會攜帶參數(shù)信息進(jìn)行提交,curl 命令中也提供了攜帶參數(shù)信息的方法。
-
-X,參數(shù)后跟請求方式,可以執(zhí)行 POST 請求
-
-H,參數(shù)后跟字符串,可以指定請求頭信息,如 “Content-Type:application/json” 表示以 json 格式傳輸數(shù)據(jù)
-
-d,參數(shù)后跟字符串,可以通過字符串的方式指定請求參數(shù)內(nèi)容,使用-d參數(shù)時需要注意
-
該命令可以使用多次,來分別指定多個參數(shù)信息
-
也可以使用 -d ‘key1=val1&key2=val2’ 來一次指定多個參數(shù)
-
如果指定了參數(shù)為json類型,則可以使用 -d ‘{“id”:1,”name”:”shone”}’ 來傳遞一個json對象
-
使用 -d 參數(shù)后,請求類型會默認(rèn)為POST,此時可以省略 -X 參數(shù)的指定
-
-d參數(shù)還可以指定文件作為參數(shù),使用@后跟文件名的方式,-d “@test.txt”
-
對于一個完整的POST請求可以是:
curl?-H?"Content-Type:application/json"?-d?'{"id":1,"name":"shone"}'?http://localhost:8080/queryInfo
3、使用 Cookies
瀏覽器在進(jìn)行服務(wù)請求時,通常會保存請求信息到Cookies中,可以使用 -D 參數(shù)來指定保存請求的Cookies
curl?-o?page1.html?-D?cookie.txt?http://www.baidu.com
curl 命令還可以模擬瀏覽器的請求,使用 -A 指定瀏覽器信息來模仿瀏覽器發(fā)起請求并保存Cookies
curl?-A?"Mozilla/4.0?(compatible;?MSIE?6.0;?Windows?NT?5.0)"?-o?page.html?-D?cookie.txt?http://mydomain.net
保存的Cookie信息,可以在請求時使用-b參數(shù)指定攜帶Cookie
curl?-b?cookie.txt?http://www.baidu.com
相關(guān)推薦:《Linux視頻教程》