我正在尝试使用 JDK 构建 URIjava.net.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);
理论(或者我的想法)是解决应该返回:
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
Why #解决()“吃掉”最后一条路?如果新的 URI (query
) 构建为:
URI query = new URI(null, null, base.getPath(), queryString, null);
效果很好。
我想亲自回应一下。 Javadoc确实解释得正确。作为URI#resolve()在第 3.b 节中说:
否则,给定 URI 的路径是相对的,因此新 URI 的路径是相对的
通过根据以下路径解析给定 URI 的路径来计算
这个URI。这是通过连接除最后一段之外的所有段来完成的
此 URI 的路径(如果有)与给定 URI 的路径,然后
就像通过调用 Normalize 方法一样对结果进行归一化。
所以....我没有读正确。我应该删除这个回复吗?还是让它自己回复?
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)