一,Curl
1,概述:
- curl是一个利用URL语法在命令行下工作的文件传输工具
- 支持如下协议:DICT,FILE,FTP,FTPS,GOPHER,HTTP,HTTPS,IMAP
- 整个命令过程中不能进行交互
2,如何使用:
- curl -x 127.0.0.1:8888 https://www.baidu.com
-x:指定代理端口,可以配合代理工具,比如Charles实现代理 - 用curl命令发送get请求
-G:使用get请求
-d:指定请求数据
curl https://www.baidu.com (什么都不加默认使用get请求)
curl -G https://www.baidu.com
curl -X GET https://www.baidu.com - 用curl命令发送post请求
-d:指定post请求体
curl -d ‘login=1234' https://www.baidu.com
curl -X POST https://www.baidu.com - other
保存响应内容到tmp.html:curl -o tmp.html https://www.baidu.com
输出通信的整个过程(比如请求头,请求体之类):curl -v https://www.baidu.com
不输出错误和进度信息:curl -s https://www.baidu.com
二,JQ
1,概述:
- 可以简单理解是一个json的提取器
- 官网:https://stedolan.github.io/jq/
- 安装:yum install -y jq
2,如何使用:
- 格式优化:
echo '{"a":11,"b":12}'| jq '.' - 内容提取:
echo '{"foo":40,"bar": "less interesting data"}' | jq .foo - 从数组中提取单个数据
提取{"a":1,"b":2}:echo '[{"a":1,"b":2},{"c":3,"d":4}]' | jq .[0] - 从数组中提取所有数据
echo '[{"a":1,"b":2},{"c":3,"d":4}]' | jq .[] - 过滤多个值
只提取0,1的值:echo '[{"a":1,"b":2},{"c":3,"d":4}]' | jq .[0,1] - 数据重组成数组(前面没有.)
echo '[{"a":1,"b":2,"c":3,"d":4}]' | jq '[.a,.b]' - 数据重组成对象
echo '[{"a":1,"b":2,"c":3,"d":4}]' | jq '{"tmp":.b}'