本文記錄通過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 引用參數文件內容即可成功發送

如果有其他問題,可留言與我討論