0

我有以下需要执行的代码

URI uri = new URI("http://localhost:8080/rest/{data}");

上例中的 URI 来自axis2-adb-1.5.1.jar - org.apache.axis2.databinding.types.URI

我也厌倦了使用axis2-adb-1.6.1.jar。我收到 MalformedURIException 说明“路径包含无效字符:{”。我可以使用解决方法并修改 URI 以使其正常工作

URI uri = new URI("http://localhost:8080/rest/%7Bdata%7D");

但是,我正在寻找不需要修改输入的选项。此外,谁能回答我为什么轴罐有这个限制。我试图寻找解释,但找不到任何解释。

4

1 回答 1

0

几天前发现在 URL 中添加花括号不是一个有效的场景。只有在正确编码后才能添加

http://axis.apache.org/axis2/java/core/api/org/apache/axis2/databinding/types/URI.html states URI 规范的解析是根据 RFC 2396 中描述的 URI 语法完成的,并且由 RFC 2732 修正。

RFC 2396 和 RFC 2732 都规定了以下内容

排除其他字符是因为已知网关和其他传输代理有时会修改此类字符,或者将它们用作分隔符。

不明智=“{”| "}" | “|” | "\" | "^" | "[" | "]" | “`”

对应于排除字符的数据必须转义才能在 URI 中正确表示。

于 2013-06-04T17:46:14.327 回答