如何在创建url时由uribuilder在查询参数之前制作哈希内容

时间:2017-01-16 10:56:25

标签: java url uribuilder

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

例如:?www.xxx.com /#/路径/查询= 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。

1 个答案:

答案 0 :(得分:1)

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

  

方案:[// [用户:密码@]主机[:端口]] [?查询] [/]的路径[#片段]

您尝试创建的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();