我正在尝试使用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);
它运行良好。