1. curl简介
curl命令始于1998年,是一个命令行工具和库,用于通过 URL 传输数据。
curl几乎支持所有协议类型的数据传输,HTTP、HTTPS、FTP、SFTP、SMB、TELNET等等等等。
对于开发者而言,curl最常见的用途是代替浏览器或者postman等接口测试工具,用来请求接口并获取数据。
更多内容参考curl官网。
2. curl参数说明
curl命令的参数很多,这里我们对一些常用参数进行说明。
- X:指定请求类型,GET、POST、PATCH、DELETE、PUT等
- s:不输出错误和进度
- H:设置header内容
- d:设置body内容
- d@:设置body内容,从文件读取
- F:请求时带文件
- m:请求超时时间
- k:忽略SSL证书验证
- o:保存文件
3. curl实践
3.1. curl不输出错误和进度
1 | # 不输出错误和进度 |
更多内容参考 curl的用法指南。
3.2. curl post请求带参数
1、application/x-www-form-urlencoded
请求:
1 | id=1 |
2、application/json
请求:
1 | curl -X POST "http://rap2api.taobao.org/app/mock/241888/updateip" -H "Content-type: application/json" -d '{"id":"'${id}'","ip":"'${ip}'"}' |
其中data.json中的内容为:
1 | { |
3、multipart/form-data
请求:
1 | curl -X POST http://rap2api.taobao.org/app/mock/241888/updateip -F "id=${id}" -F "filename=@file.tar.gz" |
3.3. curl设置超时
1 | curl -m 15 -s "https://www.voidking.com" |
3.4. curl忽略证书验证
执行curl命令时,如下报错:
1 | curl: (60) SSL certificate problem, verify that the CA cert is OK. Details: |
解决办法:如报错提示,使用 -k 参数
1 | curl -k "https://www.voidking.com" |
3.5. curl指定CA证书
1 | curl --cacert /path/to/ca.pem "https://www.voidking.com" |
3.6. curl下载文件
1 | curl -o icon.png "https://www.python.org/static/opengraph-icon-200x200.png" |
curl下载这种方法也可以用来解决curl报错:curl: (23) Failed writing body (4096 != xxx)
1 | curl -o /dev/null -s -w "%{http_code}\n" -X GET http://example.com |