我的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/