url参数中带{、}、|、`、\这些特殊字符导致400

新手上路,请多包涵

对部署的一台服务器进行访问,访问链接参数中带{、}、|、`、这些字符串时返回400错误,同样的链接在其他服务器中不存在400的问题,求大腿解释一下这个问题
访问的链接(POST请求):http://220.196.52.29:9000/hzz-service/login/code?phone=18121145530&data={"version":"1.2.3","source":"iOS"}
去掉左右{}该访问就没问题了

阅读 17.1k
2 个回答

可以使用 encodeURIComponent 编码后再传输,后台再解码就行了

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"}

使用 encodeUriComponent 进行URL编码

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题