El método equals()
de la clase URL de la biblioteca de clases Java realiza una solicitud de DNS para obtener la IP para el nombre de host, para verificar la igualdad de las dos direcciones IP. Esto sucede incluso para las URL que se crean desde el mismo String
. ¿Hay alguna manera de evitar este acceso a internet?Cómo evitar, que URL.equals necesita acceso a internet en Java?
Respuesta
Uso java.net.URI en lugar de la URL.
No utilice URL.equals. Como dice la documentación,
Nota: Se sabe que el comportamiento definido para
equals
es incoherente con el alojamiento virtual en HTTP.
¿Cómo debo probar la igualdad? – Mnementh
Puede usar toString() o to ExternalForm() para obtener el formulario externo y compararlos. Las pruebas preliminares aquí muestran que no tiene acceso al DNS. –
Acabo de votar la respuesta de Bill. Simplemente llame aURI() en sus objetos de URL. –
Si sólo quiere comparar las cadenas URL, intente
url1.toString().equals(url2.toString())
Las dos cadenas podrían ser muy diferentes pero apuntan al mismo recurso. –
Si desea verificar el recurso al que hace referencia una URL, obviamente necesita acceso a Internet. Por lo tanto, asumí que él quería comparar las urls. De ahí mi calificación de "si solo quieres comparar las cadenas de URL". – Rick
- 1. Acceso a Internet en Ubuntu en VirtualBox
- 2. Compruebe el acceso a Internet con monotouch
- 3. ¿Cómo autenticar sin acceso a internet en PhoneGap?
- 4. Evitar que TinyMCE/Internet Explorer convierta las URL en enlaces
- 5. Detener el acceso a Internet en el emulador Android
- 6. Eliminando el acceso a System.out en java
- 7. Java Sockets & the Internet
- 8. ¿Cómo evitar que Maven acceda a repositorios remotos?
- 9. Detectar conexión a Internet utilizando Java
- 10. ¿Cómo detectar la conexión a Internet que funciona en C#?
- 11. Java: Cómo evitar StackOverflowException
- 12. ¿Cómo evitar que un método se sobrecargue en Java?
- 13. Cómo detectar la velocidad de conexión a Internet con Java?
- 14. Cómo evitar que ActivityUnitTestCase llame a Application.onCreate?
- 15. Evitar instanceof en Java
- 16. Acceso a un dispositivo Midi en Java
- 17. ¿Cada página html con doctype necesita conexión a Internet para representar la página correctamente?
- 18. Android - ¿Cómo comprobar el acceso a Internet, no solo la conectividad a wifi?
- 19. ¿Cómo evitar que HTML-div/CSS inyectado herede estilos? (Internet Explorer)
- 20. Control de acceso para solicitudes entre sitios en Internet Explorer
- 21. Rieles: prueba a un ayudante que necesita acceso al entorno Rails (por ejemplo, request.fullpath)
- 22. Acceso a las cookies de dominio dentro de un iFrame en Internet Explorer
- 23. Cómo evitar el borrado de tipo Java
- 24. ¿Cómo hacer que Android Virtual Device acceda a internet?
- 25. ¿Cómo puedo evitar que Java cree archivos hsperfdata?
- 26. Java: Acceso a la subclase sin acceso al paquete
- 27. Acceso programático a la documentación de Java
- 28. syncadapter sin conexión a Internet
- 29. Acceso global en Java
- 30. La aplicación solicita conexión a Internet
Y, por supuesto, esto también tiene sentido semántico, porque desea comparar los Identificadores en lugar de las Ubicaciones – Gareth