Curl Post 请求上送Json参数

本文记录通过curl上送json时,参数中双引号(")的处理办法
 
Windows上
方法[b] curl "http://127.0.0.1:9999/tet" -H "Content-Type: application/json" -d "{\"a\":\"123\"}" -X POST
方法[b] curl "http://127.0.0.1:9999/tet" -H "Content-Type: application/json" -d "{"""a""":"""123"""}" -X POST
 
注意:
①:curl 使用 -d参数时,默认使用了Post上送,所以 -X POST 为可选参数
②:在Windows系统上,上送参数带有双引号(")时,一定要转义。转义有两种方式: 使用(\)或者用双引号包围起来(""")
 
如果不转义,会导致什么样的问题:
①:如果使用单引号(')包围请求体,'{"a":"123"}'上送到服务器之后,双引号会被删除如下
请求:
输入:
②:如果将json中双引号转换为单引号('0),外部使用双引号(")包围,可成功发送,但是因为参数体不合法,导致后台无法正常响应
请求:
输出:
③:使用上述正常方式,结果如下:
请求:
请求:
输出:
 
Linux上
上送json参数,上述Windows方法[b]无效,建议使用方法[a] 方式
方法[a] curl "http://127.0.0.1:9999/tet" -H "Content-Type: application/json" -d "{\"a\":\"123\"}" -X POST
 
推荐
如果json参数过长,推荐使用如下方法
 
在执行路径下,添加文件params.json
文件内容为json参数内容,无需其他转义符
使用curl发送请求,-d参数部分使用@params.json 引用参数文件内容即可成功发送
posted @ 2019-10-25 14:06  木牛Kk  阅读(24172)  评论(0编辑  收藏  举报