curl命令(全称Command Line URL Viewer)是一个综合传输工具,既可以用来上传文件,也可以用来下载文件,常用来检验一个网址是否可以访问。与curl命令相似的,还有wget命令,二者在功能上具有很多类似的地方,但curl由于可自定义各种请求参数所以在模拟web请求方面更擅长;wget由于支持ftp和Recursive所以在下载文件方面更擅长。
使用方式为:curl [options] URL 或者 curl URL [options],使用参数简称时加前缀-,使用参数全称时加前缀--,不加参数默认为GET请求。
一、常用参数:
参数简称 | 参数全称 | 说明 |
---|---|---|
u | user | 指定认证的用户名和密码,用户名和密码:(冒号)连接 |
X | request | 指定请求的方法 |
x | 指定请求的代理 | |
d | data | 将请求方法变为POST,以application/x-www-form-urlencoded的方式指定请求体Body的参数。也可以把文件名加前缀@直接作为该参数的值,使文件中的内容直接作为请求体Body的参数 |
data-urlencode | 对参数进行urlencode编码后作为请求体Body的参数 | |
F | form | 以multipart/form-data的方式指定请求体Body的参数,如果是文件,文件名前加前缀@,并可以用type指定MIME类型,用filename指定服务端要接收该文件时所用的文件名,用;(分号)分隔即可 |
T | upload-file | 上传指定的文件 |
L | location | 跳转(请求)到指定的地址 |
e | referer | 指定请求头Header中的Referer |
A | user-agent | 指定请求头Header中的User-Agent |
b | cookie | 指定请求头Header中的Cookie |
b | 从指定文件读取信息作为Cookie | |
c | 把Cookie写入到指定文件 | |
H | header | 指定自定义请求头Header,键和值用:(冒号)连接 |
i | include | 获取响应头Header和响应体Response的内容 |
I | head | 只获取响应头Header的内容 |
D | dump-header | 将响应头Header保存到指定的文件 |
o | output | 获取的内容保存为指定的文件 |
O | 获取的内容保存为文件,URL的最后部分作为文件名 | |
r | range | 限制字节大小进行分块下载 |
C | continue-at | 断点续传 |
# | 下载时显示进度条 | |
k | insecure | 跳过SSL检测 |
limit-rate | 限制带宽,可以模拟弱网环境 | |
v | verbose | 显示请求的完整过程 |
trace | 将请求过程输出到指定文件 | |
trace-ascii | 将请求过程输出到指定文件 | |
s | silent | 不显示进度信息和错误信息 |
S | show-error | 显示错误信息 |
二、使用技巧:
1、批量下载多个文件名连续的文件,比如文件名为1.txt、2.txt、3.txt等:
curl http://localhost:8080/[1-3].txt -O
2、对大文件分块下载,然后进行合并:
curl http://localhost:8080/test.mp3 -r 0-999 -o test1.mp3
curl http://localhost:8080/test.mp3 -r 1000-1999 -o test2.mp3
curl http://localhost:8080/test.mp3 -r 2000-2999 -o test3.mp3
//合并文件
cat test1.mp3 test2.mp3 test3.mp3 > test.mp3