我使用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。
答案 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();