Spring requestMapping在requestParam中将%2f用作斜杠(/)

时间:2018-09-04 14:49:53

标签: java spring spring-rest

令牌是从第三方服务生成的。
有时,这些标记包括%2F之类的0Tqn66huZhfX%2Fft7nPnCj1Id

我正在为此服务编写包装并使用弹簧托。

当我将其中带有%2F的令牌作为@RequestParam发送到spring控制器时,会将%2F视为/字符,

0Tqn66huZhfX%2Fft7nPnCj1Id变成0Tqn66huZhfX/ft7nPnCj1Id

我必须将此令牌发送到另一个服务器,如下所示。

http://example.com/ {token} / {otherVariable}

当spring将%2F设为/时,它将破坏url格式。

我该怎么办才能通过%2F获得令牌值,而无需将其转换为/

1 个答案:

答案 0 :(得分:0)

浏览器将根据使用的字符集对URL进行编码。我们可以通过使用JS ... etc等来防止。

  

解决方案:   发送请求之前,请使用以下方式对该网址进行编码:

in JS: use encodeURI(url), 此函数编码特殊字符except: , / ? : @ & = + $ # 供解码使用:decodeURI(url)