http 参数中传递特殊字符需要先编码

遇到一个客户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

站长数十年成长感悟,输入暗号查看

桩白墨公众号上还能加入书舟书友群、美团外卖红包群,免费领取站桩和原创 chatgpt 教程哦
暗号:
请关注本站微信公众号,回复“暗号”,即可获取。在微信里搜索“桩白墨”或者“baimoz”或者微信扫描右侧二维码都可以关注站长微信公众号。