基于http的web api接口太常见了。
无论是微信,支付宝还是银联,都有https接口api, 工作中有时候需要调试下http接口。
如果为了调试个接口就要敲代码的话效率未免太低了。curl工具就很强大,直接用工具敲一下,就能把http接口给测一下,且可以打印出完整的过程,方便调试。
也许你会用postman,当然postman是一个不错的工具,但是前提是得安装有这个工具吧。
如果用习惯了命令行,curl工具就够简单、强大和好用了。而且还可以把要测试的包报存为文件,方便下次测试或者,执行测试用例。
相比postman工具,这个curl麻雀虽小五脏俱全,没有它不能的。更专业的一般都会有专门的api接口文档管理平台如yapi。但是当遇到个紧急的第三方接口对接调试时,还是curl更快和顺手。
举一个之前测试银联https的接口demo,为了安全起见,后台地址用XX表示。
需要提交的二进制数据,我提前准备到aaa.bin文件里了,如果敲在命令行,太费劲了。
UP.pem为本地公钥证书文件。
curl https://XXX.XXX.XXX.XX:XXX -v --cacert ./UP.pem -k -H 'User-Agent: Donjin Http 0.1' -H 'Content-Type: x-ISO-TPDU/x-auth' -H 'Cache-Control: no-cache' -H 'Content-Length: 93' --data-binary @aaa.bin
执行结果:
> POST / HTTP/1.1 > Host: XXX.XXX.XXX.XX:XXX > Accept: */* > User-Agent: Donjin Http 0.1 > Content-Type: x-ISO-TPDU/x-auth > Cache-Control: no-cache > Content-Length: 93 > } [93 bytes data] * upload completely sent off: 93 out of 93 bytes
这样就算完啦,相比之前,我没安装postman,接口测试我用php写的一个测试demo来说,这个curl工具更简单高效。
再举个更常见的例子:
调用平台接口post数据,数据为json格式:
curl -i -X POST -H 'Content-type':'application/json' -d {"BTime":""$btime""} $url
如果json参数过长可使用如下方法,把json报文写入到文件中,如params.json保存在执行路径下,
-d参数部分使用@params.json 引用参数文件内容即可成功发送。
curl "http://127.0.0.1:9999/test" -H "Content-Type: application/json" -d @params.json -X POST