tengo el siguiente escenario:manera adecuada para comprobar la igualdad 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");
}
Ninguno de estos controles están teniendo éxito. Solo la ruta difiere: u1 tiene una ruta de "/" mientras que u2 tiene una ruta de "". ¿Estas URL apuntan al mismo recurso y hay alguna manera de que verifique tal cosa sin abrir una conexión? ¿Estoy malentendiendo algo fundamental sobre las URL?
EDIT Debo decir que se desea una verificación no hacky. ¿Es razonable decir que el camino vacío == /? Tenía la esperanza de no tener este tipo de código
... esto no responde a la pregunta en absoluto. – Zarel
Interesante ... pero entonces la prueba toURI() tendría éxito si de hecho fueran iguales. –
@SB, actualizado con más RFC y más documentación :) –