【问题标题】:Getting a MalformedURLException on an encoded URL在编码的 URL 上获取 MalformedURLException
【发布时间】:2021-12-13 18:00:17
【问题描述】:

我有接收 URL 并处理它们的功能。这些 URL 可以包含字符,例如 [ 或空格。处理这种情况的方法是对 URL 进行编码。

但这涉及到第二个问题,例如处理正斜杠。 Apache URL 不允许 %2F/ 编码值。

我有一个解决方法字符串在编码后将%2F 替换为/。但这感觉有点hacky。 我查看了不同类型的编码器,包括 URL 编码器,但我找不到任何可以让我对整个 URL 字符串进行编码的东西,不会抛出 MalformedURLException

【问题讨论】:

标签: java url character-encoding urlencode


【解决方案1】:
String encodedURL = UriUtils.encodePath(request.getUrl(), "UTF-8"); 

无需额外功能即可工作。

【讨论】:

  • UriUtils 来自什么包?
  • 这对我来说似乎不是一个正确的解决方案。如果您对http://example.com/foo/bar 的路径部分进行编码,您最终会得到http://example.com/foo%2Fbar,这不是同一个URL。
猜你喜欢
  • 1970-01-01
  • 2011-05-25
  • 2014-09-27
  • 2010-10-21
  • 2016-05-23
  • 1970-01-01
  • 1970-01-01
  • 2012-01-24
  • 2011-05-15
相关资源
最近更新 更多