本文鏈接:?https://blog.csdn.net/xietansheng/article/details/84637993
cURL(CommandLine Uniform Resource Locator),是一個利用 URL 語法,在命令行終端下使用的網(wǎng)絡請求工具,支持 HTTP、HTTPS、FTP 等協(xié)議。cURL 也有用于程序開發(fā)使用的版本 libcurl。
Linux、MAC 一般系統(tǒng)默認已安裝好 curl,直接在終端使用命令即可,如果需要手動安裝,可以到 curl.haxx.se 下載安裝。
Windows 系統(tǒng) curl 下載地址: https://curl.haxx.se/windows/,下載解壓后即可使用,命令的可執(zhí)行文件在解壓后的 bin 文件夾中。
curl?[options...]?
PS: (H) 表示只給 HTTP/HTTPS 使用, (F) 表示只給 FTP 使用
Show Info-h/--help???????????????????????#?打印幫助信息
-V/--version????????????????????#?顯示版本信息
-s/--silent?????????????????????#?靜默模式,?不輸出任何內(nèi)容
-i/--include????????????????????#?輸出包含?headers?信息
-v/--verbose????????????????????#?輸出詳細內(nèi)容
-#/--progress-bar???????????????#?以進度條方式顯示傳輸過程
Headers-H/--header?????LINE????????(H)?#?添加請求頭,?可添加多個?-H?參數(shù),?
????????????????????????????????#?參數(shù)格式:?-H?"NAME:?VALUE"
-A/--user-agen??STRING??????(H)?#?請求頭的?User-Agent?字段
-e/--referer????URL?????????(H)?#?請求頭的?Referer?字段
-r/--range??????RANGE???????(H)?#?請求頭的?Range?字段
-b/--cookie?????STRING/FILE?(H)?#?請求頭的?Cookie?字段,?以字符串的形式提供,?
????????????????????????????????#?或從指定?cookie?文件中讀取
-c/--cookie-jar?????FILE????(H)?#?把響應頭中的?cookie?保存到指定文件
-D/--dump-header????FILE????????#?把?headers?信息保存指定文件
-I/--head???????????????????????#?只顯示文檔信息(只顯示響應頭)
Request Content#?執(zhí)行命令,?如果是?HTTP?則是請求方法,?如:?GET,?POST,?PUT,?DELETE?等
#??????????如果是?FTP?則是執(zhí)行?FTP協(xié)議命令
-X/--request????COMMAND
#?HTTP?POST?請求內(nèi)容(并自動發(fā)出?POST?請求),?例如:?aa=bb&cc=dd
-d/--data???????DATA????(H)
#?HTTP?multipart?POST?表單數(shù)據(jù),(并自動發(fā)出?POST?請求)
#?多個表單字段可添加多個?-H?參數(shù),?如果是文件參數(shù),?路徑值前面需要加@
#?參考格式:?-F?"name1=@/filepath"?-F?"name2=stringvalue"
-F/--form???????CONTENT?(H)???????????????????
Response Content-o/--output?FILE????FILE????????#?把響應內(nèi)容輸出到指定文件
-O/--remote-name????????????????#?以?URL?的文件名作為文件名稱保存響應內(nèi)容到當前目錄
-C/--continue-at????OFFSET??????#?斷點續(xù)傳,?從?offset?位置繼續(xù)傳輸
Other-y/--speed-time?????SECONDS?????#?連接?超時時間,?單位:?秒,??默認為?30
-m/--max-time???????SECONDS?????#?讀取?超時時間,?必須在該時間內(nèi)傳輸完數(shù)據(jù),?單位:?秒
--limit-rate????????RATE????????#?限速傳輸,?單位:?Byte/s
-x/--proxy??????????[PROTOCOL://]HOST[:PORT]????#?設置代理
-U/--proxy-user?????USER[:PASSWORD]?????????????#?代理的用戶名和密碼
-u/--user???????????USER[:PASSWORD][;OPTIONS]???#?設置服務器的用戶密碼和登錄選項
--cacert????????????FILE??????????????????(SSL)?#?使用指定的?CA?證書
-P/--ftp-port???????ADR?(F)?#?指定?FTP?傳輸?shù)亩丝?/span>
-T/--upload-file????FILE????#?上傳文件到指定的?URL?(http/ftp)?位置,?
????????????????????????????#?參考格式:?-T?"file1"?或?-T?"{file1,file2}"
-Q/--quote????CMD??(F/SFTP)?#?執(zhí)行命令,?-X?只執(zhí)行一條命令,?-Q?可執(zhí)行多條,
????????????????????????????#?多條命令將按順序執(zhí)行,
????????????????????????????#?參考格式:?-Q?"cmd1"?-Q?"cmd2"
curl?https://www.baidu.com/?????????#?GET請求,?輸出?響應內(nèi)容
curl?-I?https://www.baidu.com/??????#?GET請求,?只輸出?響應頭
curl?-i?https://www.baidu.com/??????#?GET請求,?輸出?響應頭、響應內(nèi)容
curl?-v?https://www.baidu.com/??????#?GET請求,?輸出?通訊過程、頭部信息、響應內(nèi)容等
#?POST?提交?JSON?數(shù)據(jù)(\表示命令語句還未結(jié)束,?換行繼續(xù))
curl?-H?"Content-Type:?application/json"????????????????\
?????-d?'{"username":"hello",?"password":"123456"}'?????\
?????http://localhost/login
#?POST?提交?表單數(shù)據(jù)
curl?-F?"username=hello"????????????????\
?????-F?"password=123456"???????????????\
?????-F?"head_image=@filepath.jpg"??????\
?????http://localhost/register
#?指定保存的文件名稱下載文件
curl?https://www.baidu.com?-o?baidu.txt
#?使用?URL?指定的資源文件名保存下載文件(URL?必須指向具體的文件名)
curl?https://www.baidu.com/index.html?-O
#?指定?Usaer-Agent?和?Referer?請求頭的值,?下載文件
curl?-A?"Mozilla/5.0?Chrome/70.0.3538.110?Safari/537.36"?\
?????-e?"https://www.baidu.com/"?\
?????https://www.baidu.com/index.html?-O
假設 FTP 服務器 地址為:192.168.0.100; 用戶名為:user; 密碼為:passwd
(1) 查看文件
#?查看?FTP?指定目錄(目錄必須以"/"結(jié)尾)下的文件列表?
curl?ftp://192.168.0.100/aaDir/?-u?"user:passwd"
#?查看?FTP?指定文件的內(nèi)容(直接輸出到終端)?
curl?ftp://192.168.0.100/aaDir/aa.txt?-u?"user:passwd"
#?用戶名?和?密碼?的另一種寫法(查看?FTP?服務器指定目錄)
curl?ftp://user:passwd@192.168.0.200/aaDir/
(2) 上傳文件
#?上傳?aa.txt?文件到?FTP?指定目錄下(目錄必須以"/"結(jié)尾),?并以?原文件名?命名保存
curl?ftp://192.168.0.100/aaDir/?-u?"user:passwd"?-T?"aa.txt"
#?上傳?aa.txt?文件到?FTP?指定目錄下,?并以?bb.txt?命名保存
curl?ftp://192.168.0.100/aaDir/bb.txt?-u?"user:passwd"?-T?"aa.txt"
#?同時上傳多個文件
curl?ftp://192.168.0.100/aaDir/?-u?"user:passwd"?-T?"{aa.txt,bb.txt}"
(3) 下載文件
#?下載?FTP?指定文件?/aaDir/aa.txt,?以原文件名命名保存到當前目錄?
curl?ftp://192.168.0.100/aaDir/aa.txt?-u?"user:passwd"?-O
#?下載?FTP?指定文件?/aaDir/aa.txt,?以?bb.txt?命名保存
curl?ftp://192.168.0.100/aaDir/aa.txt?-u?"user:passwd"?-o?bb.txt
(4) 執(zhí)行 FTP 協(xié)議命令
curl 執(zhí)行 FTP 命令格式:
curl [-options] -X "FTP命令" curl [-options] -Q "FTP命令" -Q "FTP命令" #?
#?創(chuàng)建文件夾,?在?/aaDir/?目錄(目錄必須以"/"結(jié)尾)下創(chuàng)建?bbDir?文件夾
#
curl?-u?"user:passwd"?ftp://192.168.0.100/aaDir/?-X?"MKD?bbDir"
#?
#?刪除文件夾,?刪除?/aaDir/?目錄下的?bbDir?文件夾(文件夾必須為空)
#
curl?-u?"user:passwd"?ftp://192.168.0.100/aaDir/?-X?"RMD?bbDir"
#?
#?刪除文件,?刪除?/aaDir/?目錄下的?aa.txt?文件
#
curl?-u?"user:passwd"?ftp://192.168.0.100/aaDir/?-X?"DELE?aa.txt"
#
#?重命名,?重命名需要連續(xù)執(zhí)行兩條命令,?使用兩個?-Q?參數(shù)連續(xù)執(zhí)行兩條命令(必須先?RNFR,?后?RNTO)
#
curl?-u?"user:passwd"?ftp://192.168.0.100/?-Q?"RNFR?OldPath"?-Q?"RNTO?NewPath"
其他 FTP 協(xié)議命令參考:
由于微信公眾號近期改變了推送規(guī)則,為了防止找不到,可以星標置頂,這樣每次推送的文章才會出現(xiàn)在您的訂閱列表里。
猜你喜歡:
嵌入式設備AP配網(wǎng)實例分享
嵌入式Linux單板連接飛燕物聯(lián)網(wǎng)平臺
分享一種靈活性很高的協(xié)議格式(附代碼例子)
嵌入式大雜燴周記 | 第 16 期
嵌入式大雜燴周記 | 第 15 期
訪問非法內(nèi)存為什么不會出錯?
嵌入式大雜燴周記 | 第 14 期
分享幾個實用的代碼片段(第二彈)
分享一種你可能不知道的bug定位方法
分享一種修改配置文件的方法
《嵌入式大雜燴周記第 13 期:lz4》
《嵌入式并行多線程處理器,了解一下!》
《分享一種修改配置文件的方法》
《分享幾個實用的代碼片段(附代碼例子)》
《廢舊板子再利用:搭建無線調(diào)試環(huán)境!》
《嵌入式段錯誤的3種調(diào)試方法匯總!》
《簡說TCP通信非阻塞接收(附代碼例子)》
《TCP通信常用接口的使用封裝》
《嵌入式軟件中,總線錯誤的坑?替大家先踩一步》
《分享嵌入式軟件調(diào)試方法及幾個有用的工具!》
《分享兩點提高編程能力的建議!》
在公眾號聊天界面回復1024,可獲取嵌入式資源;回復?m?,可查看文章匯總