http 参数中传递特殊字符需要先编码
- 计算机网络
- 2017-09-19
- 173热度
- 0评论
遇到一个客户bug:远程设计密码有特殊字符,没法登陆
调试发现,客户端设计器设置密码 "1+1",通过http请求发送到服务端时,内容变成了"1 1"。特殊字符丢失了。
跟老大描述了情况,老大轻描淡写一句话,“encode 一下就行了”。然后我就试了下,果然就行了。。。
贴上核心代码片段:
para.put("user", user);
password = URLEncoder.encode(password, "UTF-8");
para.put("password", password);
HttpClient client = createHttpMethod(para, true);
特殊字符必须编码后再发送。
正确流程是:客户端encode,发送数据,服务端decode