记一次url未encode遇到的问题

当后端生成的一串url直接在浏览器上打开时,会遇到一些问题

1.对于一些特殊字符,浏览器会报错,如“{”,“}”,所以get请求传json的参数直接贴会报错

2.对于一些字符如“+”号,浏览器直接把它变成了空格

所以一串sign

“IdYkBapfG9MCzArckRvCFIwHd87Wl9/p1g98hvj5kR4xd9k0bgPa2UZOHELDfntCsG+ETkY9SIAI8gubdMnvhmw+0F5oAHsQXdmHQ2kETtFDOAvNx93GyqQYIXgms1vD8WDgLQ22xdng0ApduTFr9AMkS6qtH/Dd3AF9LeUGReE=”

在浏览器中直接变成了

"IdYkBapfG9MCzArckRvCFIwHd87Wl9/p1g98hvj5kR4xd9k0bgPa2UZOHELDfntCsG ETkY9SIAI8gubdMnvhmw 0F5oAHsQXdmHQ2kETtFDOAvNx93GyqQYIXgms1vD8WDgLQ22xdng0ApduTFr9AMkS6qtH/Dd3AF9LeUGReE="

导致后端接收到参数后验签失败,所以有特殊字符的参数要 URLEncoder.encode(JSON.toJSONString(str), "UTF-8")编码后才能直接放在url里传,编码后+变成了%2B

喜欢艺术的码农
原文地址:https://www.cnblogs.com/zjhgx/p/11792590.html