curl發送GET請求
- curl “http://www.baidu.com” 如果這裏的URL指向的是一個文件或者一幅圖都可以直接下載到本地
- curl -i “http://www.baidu.com” 顯示全部信息
- curl -l “http://www.baidu.com” 只顯示頭部信息
- curl -v “http://www.baidu.com” 顯示get請求全過程解析
curl發送POST請求
- curl -d “param1=value1¶m2=value2” “http://www.baidu.com”
發送form表單類型的post請求 - curl -k 表示不校驗證書,這個非常實用,劃下重點
- curl -l -H “Content-type: application/json” -X POST -d ‘{“phone”:“13521389587”,“password”:“test”}’ http://domain/apis/users.json
發送json格式數據的post請求
curl對接ftp
查看文件
- curl ftp://192.168.0.100/aaDir/ -u “user:passwd”
查看 FTP 指定目錄(目錄必須以"/"結尾)下的文件列表 - curl ftp://192.168.0.100/aaDir/aa.txt -u “user:passwd”
查看 FTP 指定文件的內容(直接輸出到終端) - curl ftp://user:[email protected]/aaDir/
用戶名 和 密碼 的另一種寫法(查看 FTP 服務器指定目錄)
上傳文件
- curl ftp://192.168.0.100/aaDir/ -u “user:passwd” -T “aa.txt”
上傳 aa.txt 文件到 FTP 指定目錄下(目錄必須以"/"結尾), 並以 原文件名 命名保存 - curl ftp://192.168.0.100/aaDir/bb.txt -u “user:passwd” -T “aa.txt”
上傳 aa.txt 文件到 FTP 指定目錄下, 並以 bb.txt 命名保存 - curl ftp://192.168.0.100/aaDir/ -u “user:passwd” -T “{aa.txt,bb.txt}”
同時上傳多個文件
下載文件
- curl ftp://192.168.0.100/aaDir/aa.txt -u “user:passwd” -O
下載 FTP 指定文件 /aaDir/aa.txt, 以原文件名命名保存到當前目錄 - curl ftp://192.168.0.100/aaDir/aa.txt -u “user:passwd” -o bb.txt
下載 FTP 指定文件 /aaDir/aa.txt, 以 bb.txt 命名保存
執行 FTP 協議命令
curl 執行 FTP 命令格式:
單條命令: curl [-options] -X “FTP命令”
多條命令: curl [-options] -Q “FTP命令” -Q “FTP命令”
- 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/ 目錄下的 bbDir 文件夾(文件夾必須爲空) - curl -u “user:passwd” ftp://192.168.0.100/aaDir/ -X “DELE aa.txt”
刪除文件, 刪除 /aaDir/ 目錄下的 aa.txt 文件 - curl -u “user:passwd” ftp://192.168.0.100/ -Q “RNFR OldPath” -Q “RNTO NewPath”
重命名, 重命名需要連續執行兩條命令, 使用兩個 -Q 參數連續執行兩條命令(必須先 RNFR, 後 RNTO)
curl發送請求並查看響應時間
這個在排查問題的時候非常重要,當客戶問起爲啥你服務器的響應這麼慢的時候
- curl http://172.20.1.162/dd?code=bx -s -w %{time_connect}::%{time_starttransfer}::%{time_total}
依次輸出 client和server端建立TCP 連接的時間,從client發出請求;到web的server 響應第一個字節的時間,client發出請求;到web的server發送會所curl有的相應數據的時間
-o:把curl 返回的html、js 寫到垃圾回收站[ /dev/null]
-s:去掉所有狀態
-w:按照後面的格式寫出rt
time_namelookup:DNS 解析域名www.36nu.com的時間
time_connect:client和server端建立TCP 連接的時間
time_starttransfer:從client發出請求;到web的server 響應第一個字節的時間
time_total:client發出請求;到web的server發送會所curl有的相應數據的時間
speed_download:下週速度 單位 byte/s