本文记录通过curl上送json时,参数中双引号(")的处理办法
Windows上
方法[a] 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中双引号转换为单引号('),
外部使用双引号(")包围,可成功发送,但是因为参数体不合法,导致后台无法正常响应
请求:

输出:

③:使用上述[a][b]方式,结果如下:
请求:

请求:

输出:

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 引用参数文件内容即可成功发送

如果有其他问题,可留言与我讨论