一、Curl命令模拟 POST 请求
大部分的借口都是采用post发送请求,所以我们必须学会查看API借口文档,并使用post接口调试工具,最后将生成的命令集合,放到python或者shell脚本中,提取关键字,判断接口业务可用性。
POST请求:
POST就是发送、提交。可以向指定的资源提交要被处理的数据。
如果使用表单方式进行提交,表单的method必须设置为POST。
1.1 json 数据类型
curl -H "Content-Type: application/json" -X POST --data '{"jsonrpc":"2.0","method":"NET.getWanParam","params":[],"id":67}' http://192.168.200.1/cgi-bin/router
## --data {} 里是你要请求的数据,这里要看开发你写的api文档,按照规则写(传参)
## http://192.168.200.1/cgi-bin/router 是请求api的地址
## 截图涉及隐私,就网上cp个图,放下面 意思意思
1.2 shell输出json某字段的value
grep -Po 'userId[" :]+\K[^"]+' a.txt
#其中a.txt是文件名
#userId是字段名称
#你想要哪个写替换下即可。
2. x-www-form-urlencoded 数据类型
POST应用程序/ x-www-form-urlencoded
application/x-www-form-urlencoded 是默认值:
[root@Admin ~]# curl -d "respData={}&serviceName=123&platformNo=123312&responseType=123321&keySerial=123321&sign=123321" -X POST http://qiuyuetao.com/1233/xinwangCallBack
failure
Post方式提交的特点:
- post提交数据相对于get的安全性高一些。(注意:抓包软件也会抓到post的内容,安全性要求高可以进行加密)
-
传递数据量大,请求对数据长度没有要求。
-
请求不会被缓存,也不会保留在浏览器的历史记录中。
-
用于密码等安全性要求高的场合,提交数据量较大的场合,如上传文件,发布文章等。
-
POST方式提交数据上限默认为8M(可以在PHP的配置文件post_max_size选项中修改)
二、Curl命令模拟 GET 请求
GET通常用于获取服务端数据。
常见发起GET请求的方式有:URL 、src/href、表单(form)。
[root@Admin ~]# curl https://api.qiuyuetao.com
{"responseHeader":{"sysCode":"000000","sysMsg":"系统正常","accountStatus":"","bankStatus":"","android":"","ios":"","activateUserStatus":"1","encrypt":"1"},"responseData":{"data":"","msg":"No handler found for GET /","msgTip":"","code":"000001"}}
GET方式提交数据特点:
- get方式在url后面拼接参数,只能以文本的形式传递参数。
-
传递的数据量小,4kb左右(不同浏览器会有差异)。
-
安全性低,会将信息显示在地址栏。
-
速度快,通常用于对安全性要求不高的请求。
三、总结
通过curl的返回值,来判断api的状态(抓取关键字:比如 sysCode:000000代表正常);
最好在结合python或shell脚本,实现api自动化监控,配置微信公众号,实时推送到微信报警,或者钉钉即可。
- QQ精品交流群
-
- 微信公众号
-