前言
-
应用场景
工作中经常需要用到curl命令在测试或生产服务器中测试第三方接口,尤其是一些内外网接口、判断线上接口信息等,需要用到curl命令直接测试页面或接口返回值,整理方便日后查阅
常用参数
-
参数说明
-i:打印 http 消息头(–include)
-k:忽略ssl证书校验
-L:302继续请求
-H:设置请求消息头(–header 参数)
-d:带post消息体(–data 参数)
-X:设置http方法
-v:参数输出通信的整个过程,用于调试
命令样例
-
常用命令(全)
# Post请求 设置请求头和请求体 curl -i -k http://192.168.156.96/nbsp/nbsp110 -X POST -H "Content-type:application/json" -d '{"commCom":{},"bodyCom":{"id":"12345","regionCode":"5300000","name":"张三"}}' # Get请求 无入参 curl -v https://www.example.com # Get请求 设置入参 curl -v "http://127.0.0.1:80/xcloud/test?version=1&client_version=1.1.0&seq=1001&host=aaa.com"
-
其他命令
# -o参数 将服务器响应保存成文件(等同于wget命令) curl -o example.html https://www.example.com # -x参数 指定 HTTP 请求的代理 ## 指定 HTTP 请求通过myproxy.com:8080的 socks5 代理发出 curl -x socks5://james:cats@myproxy.com:8080 https://www.example.com ## 没有指定代理协议,默认为 HTTP(请求的代理使用 HTTP 协议) curl -x james:cats@myproxy.com:8080 https://www.example.com # -L参数 跳转到新的网址 ## 结果自动跳转为 www.sina.com.cn curl -L www.sina.com # -F参数 模拟 http 表单提交数据 ## 可以使用@前缀来制定提交的内容为一个文件,也可以使用<符号来提交文件中的内容 ## 向服务器上传一个文件,图片的表单 name 为 file,内容为 /tmp/me.txt 的二进制 curl -F file=@/tmp/me.txt http://www.aiezu.com # --data-urlencode参数等同于-d,发送 POST 请求的数据体,区别在于会自动将发送的数据进行 URL 编码 ## 发送的数据hello world之间有一个空格,需要进行 URL 编码 curl --data-urlencode 'comment=hello world' https://google.com/login
其他
-
curl和wget区别
curl模拟的访问请求一般直接在控制台显示,而wget则把结果保存为一个文件。如果结果内容比较少,需要直接看到结果可以考虑使用curl进行模拟请求,如果返回结果比较多,则可考虑wget进行模拟请求。
参考链接
-
curl 的用法指南
http://www.ruanyifeng.com/blog/2019/09/curl-reference.html
-
Linux curl命令参数详解
https://blog.csdn.net/chengxuyuanyonghu/article/details/54970073
-
Linux命令发送Http GET/POST请求
https://www.cnblogs.com/kaleidoscope/p/9719841.html
-
curl 命令
https://blog.csdn.net/wo18237095579/article/details/81124704
-
Linux curl命令使用代理、以及代理种类介绍
https://www.cnblogs.com/panxuejun/p/10574038.html