2014-03-31 42 views
2

我嘗試生成以下URI如何讓UriBuilder使用已解碼的哈希字符構建一個URI?

//主機:端口/名稱/#/名稱/姓名

與球衣URI生成器。問題是uri生成器解碼哈希字符。

有沒有人如何建立給定的URI?

那是什麼,我有:

final URI build = uriInfo.getBaseUriBuilder().path("..").path("#").path("/clients/asd/").build(); 
+0

你可以嘗試'。路徑(URLEncoder.encode( 「#」))' – Alden

+0

@Alden 1.'URLEncoder.encode()'不適合工作的URI ; 2. OP實際上是想要一個URI片段,而不是爲了逃避散列號 – fge

回答

3

#不在URI路徑的有效字符; #以及它後面的內容實際上是一個URI 片段

你需要做什麼因此:

final URI build = uriInfo.getBaseUriBuilder().path("..") 
    .fragment("/clients/asd/").build(); 

(注:我不使用球衣,其實,我擡頭的Javadoc here,我想這是一樣的)

+0

那就是它!非常感謝 –

0

對我來說,這是什麼工作:

final URI build = UriBuilder.fromUri("{arg1}").fragment("{arg2}").buildFromEncoded("../","/clients/asd/"); 

使用.path("..").fragment("/clients/asd/").build()會產生

..#%2Fclients%2Fasd