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

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