首页 > 解决方案 > Spring requestMapping 将 requestParam 中的 %2f 作为斜杠 (/)

问题描述

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

我正在为这项服务编写一个包装器并使用弹簧休息。

当我将其中的令牌发送%2F到弹簧控制器时,@RequestParam它被视为%2F字符/

0Tqn66huZhfX%2Fft7nPnCj1Id变成0Tqn66huZhfX/ft7nPnCj1Id.

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

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

随着 spring%2F变成 as /,它打破了 url 格式。

我可以做些什么来获得令牌值%2F而不将其转换为/

标签: javaspringspring-rest

解决方案


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

解决方案:在发送请求之前使用:

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


推荐阅读