昨天晚上被postman坑了近一个小时,原因是我在模拟post请求的时候,发送的请求参数是replayId,但是后端死活取不到,由于刚接触gin框架,怀疑自己取值的方式不对,排查了一个多小时,偶然点了下看到原始的请求参数才看到了i和I的差别
然后经人指点说可以用curl来模拟post请求,以前用过curl,但只用过发get请求来测试网络连通,或者在服务器上下载安装包,不知道还能用来发post请求,所以,整理下用法.
GET
显示请求的内容:curl "http://www.baidu.com"
显示全部信息:curl -i "http://www.baidu.com"
只显示头信息:curl -l "http://www.baidu.com"
显示get请求的全过程:curl v "http:www.baidu.com"
Post
curl -v -i -H “Content-type: application/json” -X POST -d ‘{“applyId”:2,”isApprove”:1,”auditDesc”:”aaa”}’ http://127.0.0.1:6789/apply/submitApplyResult
curl -d “applyId=1&isApprove=1&auditDesc=33” “http://127.0.0.1:6789/apply/submitApplyResult”
需要注意的是,以上两种请求方式在gin解析的时候是不同的.
c.PostForm(“applyId”)适用于:curl -d "applyId=1&isApprove=1&auditDesc=33" "http://127.0.0.1:6789/apply/submitApplyResult"
对于第一种请求json格式的请求,需要使用context的bind方法解析到结构体中.