我的REST资源(使用Jersey)使用QueryParam接收IPv6地址。

当资源中接收到地址值时,其某些字符被编码,不知道使用哪种算法。

例如,地址:[fe80 :: bce8:a33e:2c56:d48a%13]
这样到达:
在调试中,它看起来像[fe80 :: bce8:a33e:2c56:d48a \ u00]
但是,当将其引出时:[fe80 :: bce8:a33e:2c56:d48a]

我知道'\ u00'被转换为空格,但是为什么会发生这种情况?我该如何克服?有办法解码吗?

谢谢

最佳答案

根据RFC2396

  Because the percent "%" character always has the reserved purpose of
  being the escape indicator, it must be escaped as "%25" in order to
  be used as data within a URI.


泽西岛无法理解这是否是保留字符。因此,在您的情况下,我认为您应该在查询参数中转义保留字符,然后它应能按预期工作:

[fe80::bce8:a33e:2c56:d48a%2513]

关于java - IPv6编码在请求参数中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14557880/

10-10 19:59