我有以下情形:有道檢查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