1. 问题背景
项目组需要开发一个第三方系统跳转本系统并模拟登录的接口,方式为get请求,参数只有一个加密串:cid,由于加密串比较长,采用des加密算法,会出现一定数量的特殊字符,+号也不例外。
然而, 将含有+号的加密串放到url中进行接口请求的时候,+号丢失了,诚然,服务端一定解析不了这缺少+字符的加密串了。
问题由此得来。
2. 问题展示【图片】
2.1 url链接中
2.2 开发者工具传参中
2.3 后端接收的参数中
3. 问题解决
3.1 分析
通过观察上述的三张图片,并查阅大量资料,解决办法就浮出水面,清晰可见。
那就是,将服务端接收到的加密串中的空格,替换成+ 。
当然,这只是其中一种办法,这个办法选择再服务端入手,还原加密串原有的样子。
你也可以,在发请求的时候,就对+号进行处理,使之不丢失。
3.2 程序
String cidString = cid.replaceAll(" ","+");
4. 解决后的效果【图片】
【ok】