curl post 請求上送Json參數 (Windows/Linux下的區別)


本文記錄通過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 引用參數文件內容即可成功發送
 
如果有其他問題,可留言與我討論


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM