跳到主要内容

curl 指令基本使用

常见参数

-A/--user-agent <string> 设置用户代理发送给服务器
-b/--cookie <name=string/file> cookie字符串或文件读取位置
-c/--cookie-jar <file> 操作结束后把cookie写入到这个文件中
-C/--continue-at <offset> 断点续转
-D/--dump-header <file> 把header信息写入到该文件中
-e/--referer 来源网址
-f/--fail 连接失败时不显示http错误
-o/--output 把输出写到该文件中
-O/--remote-name 把输出写到该文件中,保留远程文件的文件名
-r/--range <range> 检索来自HTTP/1.1或FTP服务器字节范围
-s/--silent 静音模式。不输出任何东西
-T/--upload-file <file> 上传文件
-u/--user <user[:password]> 设置服务器的用户和密码
-x/--proxy <host[:port]> 在给定的端口上使用HTTP代理
-#/--progress-bar 进度条显示当前的传送状态
-d/--data <data> HTTP POST方式传送数据
--data-ascii <data> 以ascii的方式post数据
--data-binary <data> 以二进制的方式post数据

1.发送普通请求 默认发送 get 请求

curl URL
# 例子
curl http://code.hzy777.eu.org:8080/test

2.使用 -X 请求方式 来指定其它请求

curl -XPOST URL
# 例子
curl -XPOST URL

3.使用 -d 数据 来携带参数

curl -XPOST URL -d 数据
# 例子
curl -XPOST http://code.hzy777.eu.org:8080/test -d {age:14}

4.使用 -H 请求头 设置请求头

curl URL -H 请求头
# 例子
curl -XPOST http://code.hzy777.eu.org:8080/test -H ‘Content-Type:application/json’ -d{”age”:17,”name”:”zs”}

# 使用多个-H设置多个头部信息
curl -XPOST http://code.hzy777.eu.org:8080/test -H ‘Content-Type:application/json’ -H ‘key:6666’ -d{”age”:17,”name”:”zs”}

5.使用 -I 获取到响应头信息

curl -I URL
# 例子
curl -I http://code.hzy777.eu.org:8080/test

6.使用-O 下载文件等静态资源默认下载路径为当前

curl -O 静态资源路径
# 例子
curl -O http://code.hzy777.eu.org:8080/static/other/如愿.mp3

7.使用 -o 文件名 来指定下载的文件的名字

curl -o 文件名 URL
# 例子
curl -o music.mp3 http://code.hzy777.eu.org:8080/static/other/如愿.mp3

# 下载到指定路径
curl -o ./file/music.mp3 http://code.hzy777.eu.org:8080/static/other/如愿.mp3

8.使用 --limit-rate 限制速度 默认单位字节

curl --limit-rate 速度 URL
# 例子
curl --limit-rate 300k -o music.mp3 http://code.hzy777.eu.org:8080/static/other/如愿.mp3

9.使用 -L 跟随重定向地址

curl -L URL
# 例子
curl -L https://www.bilibili.com

10.使用 -v 查看详细

curl -v URL
# 例子
curl -v -l http://code.hzy777.eu.org:8080/

11.使用 --proxy 来通过代理访问目标网址

curl --proxy 协议://用户名:密码@代理地址:端口 URL
# 例子
curl —proxy “http://egg:123@127.0.0.1:8888” URL

12.使用 ftp 协议下载上传文件

# —下载文件—
curl -u 用户名:密码 -O ftp://server/egg.avi

# 或者
curl -u 用户名:密码 -o a.txt ftp://sever/egg.avi

# —上传文件—
curl -u 用户名:密码 -T 文件 [ftp://server/egg.avi](ftp://server/egg.avi)

13.模仿浏览器访问

# 有些网站需要使用特定的浏览器去访问他们,有些还需要使用某些特定的版本。
curl -A "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.0)" http://www.linux.com

14.断点续传

curl -C -O http://www.linux.com/dodo1.JPG