我想從一個字符串url使用UriBuilder從RestEasy創建一個URI,我收到了一些意想不到的結果。我正在運行以下一段代碼。Resteasy UriBuilder編碼不正確?
UriBuilder uriBuilder = UriBuilder.fromPath("http://localhost:8190/items?pageNumber={pageNumber}&pageSize={pageSize}");
System.out.println(uriBuilder.build(1, 10));
預期結果:
http://localhost:8190/items?pageNumber=1&pageSize=10
實際結果:
http://localhost:8190/items%3FpageNumber=1&pageSize=10
當使用UriBuilder.fromUri()而不是fromPath()它在創建URI
Illegal character in query at index 39: http://localhost:8190/items?pageNumber={pageNumber}&pageSize={pageSize}
在39字符是{拋出異常。
我不想分析完整的字符串來逐個創建URI部分。
我看着RestEasy代碼,它正在編碼'?'字符,同時使用org.jboss.resteasy.util.Encode#使用org.jboss.resteasy.util.Encode#pathEncoding中的pathEncoding映射進行編碼。
我的用法不正確或執行不正確?
是,這種方法奏效。謝謝!這不是絕對或相對的URL,只是如果有查詢參數,問號也被編碼,並且不起作用。 – Saket
謝謝,很高興聽到,歡迎來到stackoverflow :) –