CURL 工具使用

一、简介

curl是利用URL语法在命令行方式下工作的开源文件传输工具,支持的通信协议有FTP、FTPS、HTTP、HTTPS、TFTP、SFTP、Gopher、SCP、Telnet、DICT、FILE、LDAP、LDAPS、IMAP、POP3、SMTP和RTSP,功能强大,用于文件下载和上传,项目需要,学习一下。

二、语法

curl [option] [url]

帮助:curl --help

1.http协议

【Option】可选参数             描述

-X  或者 --request      指定请求方式,如GET 、POST 、PUT 、DELETE 、HEAD 等七种方式
-i  或者 --include      显示服务器response 响应头部信息
-v  或者 --verbose      显示详细(冗长)信息
-H  或者 --header       指定http 请求头 ,如  -H  "Content-Type:application/json"
-d  或者 --data         指定请求体body参数 , 如有多个参数可以用&隔开或者使用多个-d 选项。 如  -d "a=abc&b=110&c=true" (指定三个参数)或  -d a=abc -d b=110 -d c=true 亦可。
-F  或者 --form         指定multipart Form 请求体,如文件域参数,或者普通表单域参数。
-u  或者 --user         指定用户名:密码
-C  或者 --continue-at  offset  用于断点续传。
-c  或者 -cookie-jar    请求返回,回写cookie到指定文件中
-D  或者 --dump-header  请求返回,回写response header信息到指定文件中
-b  或者 --cookie       请求时携带上cookie,指定本地cookie所在文件
-x  或者 --proxy        指定 http代理服务器ip:port
-O                      请求Url并保存到本地
-o                      请求Url并保存到指定文件

  • 基本用法,get请求:curl {url}
  • 显示HTTP响应的头部信息:curl -i {url}
  • 查看HTTP请求/响应过程中的所有头部信息:curl -v {url}
  • 无参POST请求:curl -X POST {url}
  • Form表单(application/x-www-form-urlencoded)POST请求:curl -X POST -d "name=xxx" {url}
  • JSON形式POST请求:curl -H "Content-Type:application/json" -X POST -d '{"name": "xxx"}' {url}
  • 文件流(multipart/form-data)POST请求:curl -X POST  -F "Filedata=@{filePath}" (文件参数)  -F "FileName=text.txt" (普通文本参数) {url}
  • 请求cookie回写到本地:curl -c cookie.txt {url}
  • 请求携带cookie:curl -b cookie.txt {url}
  • 下载文件到本地:curl -O {url}
  • 下载文件到本地并指定文件名:curl -o {fileName} {url}

2.ftp协议

  • 显示FTP文件列表:
    curl -u {userName}:{password} ftp://{url} <or>  curl ftp://{userName}:{password}@{url}
  • 不显示进度条
    curl -u {userName}:{password} -s ftp://{url}
  • 下载单个文件
    curl -u {userName}:{password} ftp://{ip}:{21}/{srcFilepath} -o {destFilepath}
  • 上传单个文件
    curl -u {userName}:{password} ftp://{ip}:{21}/{destFilepath} -T {srcFilepath}
  • 删除ftp服务器文件(ftp 删除命令):
    curl -u {userName}:{password} ftp://{ip}:{21} -X 'DELE {filePath}'
  • 连续下载多个文件到本地(不支持递归下载,不指定文件名):
    curl -u {userName}:{password} ftp://{ip}:{21}/[1,2,3].txt -O  或者
    curl -u {userName}:{password} ftp://{ip}:{21}/[1-3].txt -O

3.响应时长

  • curl -o /dev/null -w %{time_namelookup}::%{time_connect}::%{time_starttransfer}::%{time_total}::%{speed_download}"\n"  {url}

参数说明:

    -o:把curl 返回的html、js 写到垃圾回收站[ /dev/null]
    -s:去掉所有状态
    -w:按照后面的格式写出rt
        time_namelookup:DNS 解析域名[www.taobao.com]的时间 
        time_commect:client和server端建立TCP 连接的时间
        time_starttransfer:从client发出请求;到web的server 响应第一个字节的时间
        time_total:client发出请求;到web的server发送会所有的相应数据的时间
        speed_download:下周速度  单位 byte/s

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值