您现在的位置是:主页 > 技术领域 > 其他 > 其他

curl 使用指北&实战

追风 2021-11-15 其他 人已围观

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

前言
curl是一种命令行工具,作用是发出网络请求,然后得到和提取数据,同时支持文件上传和下载,所以是综合的请求传输工具。
查看网页
查看网页源码
curl https://www.baidu.com
-L 查看网站存在重定向
curl -L https://www.baidu.com
-o 保存网页源码
curl -o [文件名] https://www.baidu.com # -o:将文件保存为命令行中指定的文件名的文件中
curl -O URL1 -O URL2 # -O:使用URL中默认的文件名保存文件到本地。 同一站点下多个文件,curl会尝试重用链接(connection)
-C 断点传输
curl -O http://www.gnu.org/software/gettext/manual/gettext.html # 当文件在下载完成之前结束该进程
curl -C - -O http://www.gnu.org/software/gettext/manual/gettext.html # 通过添加-C选项继续对该文件进行下载,已经下载过的文件不会被重新下载
-i 显示响应头部信息
 curl -i https://www.baidu.com # `-i` 显示http response的头部信息
抓包调试
-v 显示整个通信过程,用于调试
curl -v https://www.baidu.com
--trace 请求抓包,输出原始的二进制数据
curl --trace output.txt https://www.baidu.com # 原始数据
curl --trace-ascii output.txt https://www.baidu.com # 经过 ascii 编码的原始数据
-s 隐藏、显示错误信息
curl -s https://www.baidu.com 不输出错误信息、进度信息
curl -S https://www.baidu.com 只输出错误信息
 
--limit-rate 限制请求响应带宽,模型网络环境
curl --limit-rate 100k https://www.baidu.com #模拟带宽100k/s
curl --limit-rate 200b https://www.baidu.com #模拟带宽200b/s
模拟请求
发送GET请求
curl https://www.baidu.com
发送POST请求 --data [参数]
curl -X POST --data "data=xxx" https://www.baidu.com
curl -X POST --data "@data.json" https://www.baidu.com # 读取data.json数据,发送请求
curl -X POST --data-urlencode "data=xxx" https://www.baidu.com # 参数经过表单编码,避免符号被转义
 
发送RESTful请求
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上传文件
curl --form upload=@[local_filepath] --form press=OK https://www.baidu.com
curl -F 'file=@[local_filepath]' https://www.baidu.com # 与 --form upload=@[local_filepath] --form press=OK 等效
curl -F 'file=@[local_filepath];type=image/png' https://www.baidu.com # MIME 类型 默认为 application/octet-stream
--header 添加请求头部信息
curl --header "Content-Type:application/json" https://www.baidu.com
--proxy 代理
curl --proxy 'https://www.baidu.com' https://www.baidu.com
--referer 表明来源[防盗链]
curl --referer http://www.baidu.com https://www.baidu.com
--user-agent 用户设备信息
curl --user-agent "[User Agent]" https://www.baidu.com
# window chrome代理 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36'
--cookie 请求带上cookie
curl --cookie "name=xxx" https://www.baidu.com
curl -D cookieFile https://www.baidu.com # 保存 服务器返回的cookie 到 文件cookieFile
curl -c cookieFile https://www.baidu.com # 保存 服务器返回的cookie 到 文件cookieFile
curl -b cookieFile https://www.baidu.com # `-b cookieFile` 使用之前保存的cookie文件 用作请求
 
-k 参数跳过 SSL 检测
curl -k https://www.baidu.com
总结
我们在平时开发过程中经常会遇到线上接口请求报错需要重现修bug的情况。这时候正常打日志不仅麻烦,还容易打不准。
但如果学了curl命令,我们就可以把出问题的请求,以curl命令形式保存下来。
需要重现的时候,我们执行性命令就可以重现 bug 啦!

相关文章

文章评论