curl命令使用详细指南

curl是一种命令行工具,作用是发出网络请求,然后得到和提取数据,同时支持文件上传和下载,所以是综合的请求传输工具。

查看网页

查看网页源码

1
2
curl https://www.baidu.com
curl https://www.baidu.com:8888

-L 查看网站存在重定向

1
curl -L https://www.baidu.com

-o 保存网页源码

1
2
3
4
curl -o [文件名] https://www.baidu.com   # -o:将文件保存为命令行中指定的文件中

# -O: 使用URL中默认的文件名保存文件到本地。同一个站点下多个文件,curl会尝试重用链接(connection)
curl -O URL1 -O URL2

-C 断点传输

1
2
3
4
5
# 当文件在下载完成之前结束该进程
curl -O http://www.gnu.org/software/gettext/manual/gettext.html

# 通过添加-C选项继续对该文件进行下载,已经下载的文件不会被重新下载
curl -C - -O http://www.gnu.org/software/gettext/manual/gettext.html

-i 显示响应头部信息

1
2
# -i 显示http response的头部信息
curl -i https://www.baidu.com

抓包调试

-v 显示整个通信过程,用于调试

1
curl -v https://www.baidu.com

--trace 请求抓包,输出原始的二进制数据

1
2
3
4
5
# 原始数据
curl --trace output.txt https://www.baidu.com

# 经过ascii编码的原始数据
curl --trace-ascii output.txt https://www.baidu.com

-s 隐藏、显示错误信息

1
2
curl -s https://www.baidu.com   # 不输出错误信息、进度信息
curl -S https://www.baidu.com # 只输出错误信息

--limit-rate 限制请求响应带宽

1
2
curl --limit-rate 100k https://www.baidu.com   # 模拟带宽100k/s
curl --limit-rate 200b https://www.baidu.com # 模拟带宽200b/s

模拟请求

发送GET请求

1
curl https://www.baidu.com

发送POST请求 –data [参数]

1
2
3
4
5
6
7
curl -X POST --data "data=xxx" https://www.baidu.com

# 读取data.json数据,发送请求
curl -X POST --data "@data.json" https://www.baidu.com

# 参数经过urlencode方式编码(form表单编码方式),避免符号被转义
curl -X POST --data-urlencode "data=xxx" https://www.baidu.com

发送RESTful请求

1
2
3
4
curl -X GET     https://www.baidu.com   # 默认GET
curl -X POST https://www.baidu.com
curl -X PUT https://www.baidu.com
curl -X DELETE https://www.baidu.com

–form上传文件

1
2
3
4
5
6
7
curl --form upload=@[local_filepath] --form press=OK https://www.baidu.com

# 与 --form upload=@[local_filepath] --form press=OK 等效
curl -F 'file=@[local_filepath]' https://www.baidu.com

# MIME 类型默认为 application/octet-stream
curl -F 'file=@[local_filepath];type=image/png' https://www.baidu.com

–header添加请求投头部信息

1
curl --header "Content-Type:application/json" https://www.baidu.com

–proxy代理

1
curl --proxy 'http://www.baidu.com' https://www.baidu.com

–referer表明来源[防盗链]

1
curl --referer http://www.baidu.com https://www.baidu.com

–user-agent 用户设备信息

1
2
curl --user-agent "[User Agent]" https://www.baidu.com
# windows chrome代理 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.97 Safari/537.36'

–cookie请求带上cookie

1
2
3
4
5
6
7
8
9
10
curl --cookie "name=xxx" https://www.baidu.com

# 保存 服务器返回的cookie 到文件cookieFile
curl -D cookieFile https://www.baidu.com

# 保存 服务器返回的cookie 到文件cookieFile
curl -c cookieFile https://www.baidu.com

# -b cookieFile 使用之前保存的cookie文件 用作请求
curl -b cookieFile https://www.baidu.com

-k 参数跳过SSL检测

1
curl -k https://www.baidu.com

后台的童鞋,经常会遇到线上接口请求报错需要重现修bug的情况。这时候正常打日志不仅麻烦,还容易打不准。但如果学了curl命令了,我们就可以把出问题的请求,以curl命令形式保存下来(如下图)。

需要重现的时候,我们执行性命令就可以重现 bug 啦。

以上内容参考:传送门。命令大多经过测试有效。

文章目录
  1. 1. 查看网页
    1. 1.1. 查看网页源码
    2. 1.2. -L 查看网站存在重定向
    3. 1.3. -o 保存网页源码
    4. 1.4. -C 断点传输
    5. 1.5. -i 显示响应头部信息
  2. 2. 抓包调试
    1. 2.1. -v 显示整个通信过程,用于调试
    2. 2.2. --trace 请求抓包,输出原始的二进制数据
    3. 2.3. -s 隐藏、显示错误信息
    4. 2.4. --limit-rate 限制请求响应带宽
  3. 3. 模拟请求
    1. 3.1. 发送GET请求
    2. 3.2. 发送POST请求 –data [参数]
    3. 3.3. 发送RESTful请求
    4. 3.4. –form上传文件
    5. 3.5. –header添加请求投头部信息
    6. 3.6. –proxy代理
    7. 3.7. –referer表明来源[防盗链]
    8. 3.8. –user-agent 用户设备信息
    9. 3.9. –cookie请求带上cookie
    10. 3.10. -k 参数跳过SSL检测
本站总访问量 | 本页面被访问 | 您是第位小伙伴

© XueSi博客 版权所有 备案号 : 赣ICP备19008485号-1