鍍金池/ 問答/Java  Linux/ url參數(shù)中帶{、}、|、`、\這些特殊字符導(dǎo)致400

url參數(shù)中帶{、}、|、`、\這些特殊字符導(dǎo)致400

對部署的一臺(tái)服務(wù)器進(jìn)行訪問,訪問鏈接參數(shù)中帶{、}、|、`、這些字符串時(shí)返回400錯(cuò)誤,同樣的鏈接在其他服務(wù)器中不存在400的問題,求大腿解釋一下這個(gè)問題
訪問的鏈接(POST請求):http://220.196.52.29:9000/hzz-service/login/code?phone=18121145530&data={"version":"1.2.3","source":"iOS"}
去掉左右{}該訪問就沒問題了

回答
編輯回答
朽鹿

使用 encodeUriComponent 進(jìn)行URL編碼

2018年7月1日 11:25
編輯回答
情已空

可以使用 encodeURIComponent 編碼后再傳輸,后臺(tái)再解碼就行了

encodeURIComponent('{"version":"1.2.3","source":"iOS"}')
// %7B%22version%22%3A%221.2.3%22%2C%22source%22%3A%22iOS%22%7D

解碼

String ret = java.net.URLDecoder.decode("%7B%22version%22%3A%221.2.3%22%2C%22source%22%3A%22iOS%22%7D", "UTF-8");
System.out.println(ret);
// {"version":"1.2.3","source":"iOS"}
2017年7月1日 19:06