【问题标题】:Spring requestMapping takes %2f in requestParam as slash (/)Spring requestMapping 将 requestParam 中的 %2f 作为斜杠 (/)
【发布时间】:2019-02-09 15:28:24
【问题描述】:

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

我正在为此服务编写一个包装器并使用 spring rest。

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

0Tqn66huZhfX%2Fft7nPnCj1Id 变为 0Tqn66huZhfX/ft7nPnCj1Id

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

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

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

在不将其转换为/ 的情况下,如何使用%2F 获取令牌值?

【问题讨论】:

标签: java spring spring-rest


【解决方案1】:

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

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

对该网址进行编码

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

【讨论】:

猜你喜欢
  • 2012-11-09
  • 2020-05-11
  • 2014-09-08
  • 2017-05-07
  • 1970-01-01
  • 2010-12-29
  • 2020-02-17
相关资源
最近更新 更多