我正在尝试使用 JDK java.net.URI构建 URI 。
我想附加到一个绝对 URI 对象,一个查询(在字符串中)。例如:
URI base = new URI("http://example.com/something/more/long");
String queryString = "query=http://local:282/rand&action=aaaa";
URI query = new URI(null, null, null, queryString, null);
URI result = base.resolve(query);
理论(或我认为)是 resolve 应该返回:
http://example.com/something/more/long?query=http://local:282/rand&action=aaaa
但我得到的是:
http://example.com/something/more/?query=http://local:282/rand&action=aaaa
为什么#resolve() “吃掉”最后一条路径?如果新的 URI ( query
) 构建为:
URI query = new URI(null, null, base.getPath(), queryString, null);
它运作良好。