我有以下情形:有道检查URL平等
URL u1 = new URL("http://www.yahoo.com/");
URL u2 = new URL("http://www.yahoo.com");
if (u1.equals(u2)) {
System.out.println("yes");
}
if (u1.toURI().equals(u2.toURI())) {
System.out.println("uri equality");
}
if (u1.toExternalForm().equals(u2.toExternalForm())) {
System.out.println("external form equality");
}
if (u1.toURI().normalize().equals(u2.toURI().normalize())) {
System.out.println("uri normalized equality");
}
这些检查都不是成功的。只有路径不同:u1的路径为“/”,而u2的路径为“”。这些URL是否指向相同的资源,并且有没有办法让我在不打开连接的情况下检查这样的事情?我误解了有关URL的基本知识吗?
编辑我应该说明一个非hacky检查是需要的。说空路== /?是否合理?我希望不会有这种代码
...这不回答这个问题的。 – Zarel 2010-09-22 15:56:28
有趣的..但是然后toURI()测试会成功,如果他们实际上是平等的。 – 2010-09-22 15:58:07
@SB,用更多的RFC和更多文档更新:) – 2010-09-22 16:24:43