2

我使用来自 apache.http.client 的 uribuilder 对象来创建 url

例如:www.xxx.com/#/path/?query=123

我的代码如下

URIBuilder uriBuilder = new URIBuilder();
uriBuilder.setScheme("http");
uriBuilder.setHost(host);
uriBuilder.setFragment(path);
uriBuilder.addParameter(query,123);

但结果是 www.xxx.com/?query=123#path,我怎样才能得到 uribuilder 或其他 java 工具库所期望的正确 url。

4

1 回答 1

3

一个有效的 URI 需要符合以下结构:

方案:[//[user:password@]host[:port]][/]path[?query][#fragment]

您尝试创建的 URI 看起来像在单页应用程序中使用的 URI。在这种情况下,查询部分是片段的一部分。

您可以像这样创建它:

URIBuilder uriBuilder = new URIBuilder();
uriBuilder.setScheme("http");
uriBuilder.setHost("www.xxx.com");
uriBuilder.setPath("/");
uriBuilder.setFragment("/path/?query=123");
URI uri = uriBuilder.build();
于 2017-01-16T12:05:15.120 回答