我尝试生成以下uri
//主机:端口/名称/#/名称/名称
使用jersey URI Builder。问题是uri构建器解码哈希字符。
有人如何构建给定的URI?
这就是我所拥有的:
final URI build = uriInfo.getBaseUriBuilder().path("..").path("#").path("/clients/asd/").build();
答案 0 :(得分:3)
#
不是URI路径中的有效字符; #
及其后面的内容实际上是URI 片段。
因此,您需要做的是:
final URI build = uriInfo.getBaseUriBuilder().path("..")
.fragment("/clients/asd/").build();
(注意:我实际上不使用Jersey;我查找了javadoc here,因为我认为这是相同的)
答案 1 :(得分:1)
对我而言,这是有效的:
final URI build = UriBuilder.fromUri("{arg1}").fragment("{arg2}").buildFromEncoded("../","/clients/asd/");
使用.path("..").fragment("/clients/asd/").build()
会生成
..#%2Fclients%2Fasd