文章目录
- 1.什么是curl
- 2.curl可以发送什么请求
- 3.常见curl发http相关请求怎么写
- 4.curl带上的参数分别有什么,可以怎么用
- 5.进阶用法
- 6.常见错误以及学习指导建议
1.什么是curl
是利用URL语法在命令行下工作的开源文件传输工具。尤其被广泛应用的在linux系统下。
2.curl可以发送什么请求
由定义可知道,curl主要应用于网络传输,它支持常用的多种请求,如http,https,ftp等
3.常见curl发http相关请求怎么写
在日常运维中curl常用于判断网络服务接口是否可正常使用,故常用于发送http/https请求
可以发送以下的方式
1)GET请求
curl http://example.com
说明:当调用http/https请求时,没有明确指明使用哪个方式的话,默认使用GET请求
2)POST请求
curl -X POST -d “username=test&password=123” http://example.com/login
说明:
-X 指定请求方法
-d 发送表单数据(自动添加Content-Type: application/x-www-form-urlencoded)
3)JSON形式的POST请求
curl -X POST -H “Content-Type: application/json” -d ‘{“key”:“value”}’ http://example.com/api
说明:-H 自定义请求头,以上是发送json形式指令,当同时需要写多个请求头时,可以这样写,举一个常用的例子,比如如何在走鉴权的情况下发json形式的网络请求。示例如下:curl -H “Authorization: Bearer YOUR_TOKEN” -H “Content-Type: application/json” https://api.example.com
4.curl带上的参数分别有什么,可以怎么用
以上的例子可以看到最基础的请求参数有-X,-H。以下将根据使用的作用进行分类说明,值得注意的是参数有大小写区分。
1)请求参数类
-H 添加请求头 -H “Authorization: Bearer token”
-F 上传文件/表单 -F “file=@/path/file.jpg”(支持多文件上传)
-A 设置User-Agent -A “Mozilla/5.0” 伪装浏览器
-e 设置Referer来源 -e “http://referer-site.com”
-T 上传文件, 后面跟着的是本地文件的路径
2)响应处理类
-o 保存响应到文件 -o output.html 自定义文件名
-O 使用远程文件名保存 自动识别URL中的文件名
-i 显示响应头+内容 调试时查看完整响应信息
-v 显示通信全过程 含请求头、SSL握手等细节
3)认证与代理
-u HTTP基础认证 -u user:password
-x 设置代理 -x http://proxy:8080
-k 忽略SSL证书校验 测试环境跳过HTTPS验证
5.进阶用法
5.1 文件传输
1)FTP请求
curl -T localfile.txt ftp://ftp.example.com/
2)断点续传
curl -C - -O http://example.com/largefile.zip
5.2 Cookies管理
curl -b cookies.txt -c new_cookies.txt http://example.com
说明:-b 发送存储的Cookies,-c 保存新Cookies到文件
5.3调试技巧
curl --trace-ascii debug.log http://example.com
生成详细通信日志,便于分析请求过程
6.常见错误以及学习指导建议
6.1 SSL证书错误
添加 -k 参数或指定证书路径:
curl --cacert /path/ca.pem https://example.com
6.2 超时设置
curl --connect-timeout 10 --max-time 30 http://example.com
说明:–connect-timeout 连接超时
–max-time 最大传输时间
6.3 中文编码问题
配合 iconv 转换编码:
curl http://example.com | iconv -f GBK -t UTF-8
6.4 学习建议
1)使用 curl --help 查看所有参数说明
2)参考官方文档:https://curl.se/docs/manpage.html