curl的各種高端命令進階

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&param2=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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章