Gil*_*ili 56 java rest url urlencode rfc2396
我想发送一个URI作为查询/矩阵参数的值.在我将它附加到现有URI之前,我需要根据RFC 2396对其进行编码.例如,给定输入:
http://google.com/resource?key=value1 & value2
我期待输出:
http%3a%2f%2fgoogle.com%2fresource%3fkey%3dvalue1%2520%26%2520value2
既java.net.URLEncoder不会也java.net.URI不会产生正确的输出.URLEncoder用于HTML格式编码,与RFC 2396不同.URI没有一次编码单个值的机制,因此无法知道value1和value2是同一个键的一部分.
Pet*_*aný 30
Jersey的UriBuilder根据需要使用application/x-www-form-urlencoded和RFC 3986对URI组件进行编码.根据Javadoc
构建器方法根据查询参数的application/x-www-form-urlencoded媒体类型和所有其他组件的RFC 3986的规则,对相应URI组件中不允许的字符执行上下文编码.注意,只有特定组件中不允许的字符才能进行编码,因此,例如,提供给其中一个路径方法的路径可能包含矩阵参数或多个路径段,因为分隔符是合法字符且不会被编码.百分比编码值也在允许的情况下被识别,并且不会被双重编码.
| 归档时间: |
|
| 查看次数: |
123547 次 |
| 最近记录: |