curl 是一个十分强大的命令行工具
curl 中的 c 表示 client,因此 curl 即客户端(client)的 URL 工具。
curl 是一个十分强大的命令行工具,如果熟练的话,完全可以取代 Postman 这一类的图形界面工具。
本文只介绍它作为接口测试工具的相关使用方法,作为日常的参考,方便日后查阅。
一个示例
1
|
$curl -X POST "127.0.0.1::8080/example" -H "Content-Type: application/json" -d '{"key1":["value1","value2","value3"],"key2": "value","key3": "value"}'
|
其中
用 -X 指定请求方法、-H 添加请求头信息、-d 用于发送 POST 请求的数据
URL不需要参数拼接
参数
不带任何参数时,curl 就是发出 GET 请求
1
|
$curl https://www.example.com
|
-X
指定 HTTP 请求的方法
1
|
$curl -X POST https://www.example.com
|
-H
添加 HTTP 请求的请求头
1
|
$curl "127.0.0.1::8080/example" -H "Content-Type: application/json"
|
当有多个请求头参数时,可以添加两个 -H 参数
1
|
$curl "127.0.0.1::8080/example" -H "Content-Type: application/json" -H "uuid: 31652d14-c8f5-4455-9339-f3d4c2da4971"
|
也可以写在一个 -H 参数中,使用json格式排列
1
|
$curl "127.0.0.1::8080/example" -H '{"Content-Type": "application/json","uuid": "31652d14-c8f5-4455-9339-f3d4c2da4971"}'
|
-d
用于发送 POST 请求的数据体
1
|
$curl "127.0.0.1::8080/example" -H "Content-Type: application/json" -d '{"key1":["value1","value2","value3"],"key2": "value","key3": "value"}'
|
使用 -d 参数以后,HTTP 请求会自动加上请求头 Content-Type : application/x-www-form-urlencoded 。并且会自动将请求转为 POST 方法,因此可以省略 -X POST 。
**-d** 参数还可以读取本地文本文件的数据,作为请求参数
1
|
$curl -d '@data.txt' https://google.com/login
|
-A
指定客户端的用户代理标识
curl 的默认用户代理字符串是 curl/[version] 。
1
|
$curl -A 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36' 'https://example.com'
|
上面命令将User-Agent改成 Chrome 浏览器。
1
|
$curl -A '' https://google.com
|
上面命令会移除User-Agent标头。
也可以通过 -H 参数直接指定请求头中 User-Agent 参数,以达到更改用户代理标识的目的
1
|
$curl -H 'User-Agent: php/1.0' https://google.com
|
-i
打印出 HTTP 请求的响应头
1
|
$curl -i https://www.example.com
|
上面命令收到服务器回应后,先输出请求的响应头,然后空一行,再输出网页的源码。
-o
将服务器的回应保存成文件
1
|
$curl -o example.html https://www.example.com
|
上面命令将www.example.com保存成example.html
-O
将服务器回应保存成文件,并将 URL 的最后部分当作文件名。
可以作为下载工具使用
1
|
$curl -O https://www.example.com/foo/bar.html
|
上面命令将服务器回应保存成文件,文件名为bar.html
-v
输出通信的整个过程,用于调试。
1
|
$curl -v https://www.example.com
|
参考链接
阮一峰–curl 的用法指南