Die equals()
Methode der URL-Klasse in der Java-Klassenbibliothek erstellt eine DNS-Anforderung zum Abrufen der IP für den Hostnamen, um die beiden IPs auf Gleichheit zu überprüfen. Dies geschieht sogar für URLs, die aus demselben String
erstellt werden. Gibt es eine Möglichkeit, diesen Internetzugang zu vermeiden?Wie vermeidet man, dass URL.equals in Java auf das Internet zugreifen muss?
Antwort
Verwenden java.net.URI statt URL.
Verwenden Sie keine URL.equals. Wie die Dokumentation sagt,
Hinweis: Das definierte Verhalten für
equals
ist bekanntermaßen inkonsistent mit virtuellem Hosting in HTTP.
Wie soll ich auf Gleichheit prüfen? – Mnementh
Sie können toString() oder toExternalForm() verwenden, um das externe Formular abzurufen und diese zu vergleichen. Vorläufige Tests zeigen, dass es nicht auf DNS zugreift. –
Ich habe gerade Bills Antwort neu geordnet. Rufen Sie einfachURI() für Ihre URL-Objekte auf. –
Wenn Sie nur die URL-Strings vergleichen wollen, versuchen
url1.toString().equals(url2.toString())
Die beiden Strings könnten sehr unterschiedlich sein, weisen aber auf dieselbe Ressource hin. –
Wenn Sie die Ressource, auf die sich eine URL bezieht, überprüfen möchten, benötigen Sie natürlich einen Internetzugang. Deshalb habe ich angenommen, dass er die URLs selbst vergleichen möchte. Daher meine Qualifikation "wenn Sie nur die URL-Strings vergleichen möchten". – Rick
- 1. Wie vermeidet man, dass MVC ExceptionContext.Result zurücksetzt?
- 2. Ich kann Docker Container nicht auf das Internet zugreifen?
- 3. Wie vermeidet man, dass NLTK den Satztokenizer auf Abkürzungen spaltet?
- 4. Java BuilderTestPattern - Wie vermeidet man den Standard?
- 5. Wie vermeidet man das virtuelle Schlüsselwort
- 6. Wie vermeidet man, dass Diazo "#" Links in Plone ändert?
- 7. Wie vermeidet man das Importieren von Importen?
- 8. Wie kann man auf ein Dateisystem in Java zugreifen?
- 9. Wie vermeidet man Mehrfachvererbung?
- 10. Wie vermeidet man, dass JQuery toggle() auf einem Layout-Element das Layout bewegt?
- 11. Wie vermeidet man $ dogen auf $ rootScope?
- 12. java, wie man auf eine Datenbank zugreift, die im Webserver über das Internet ist?
- 13. Wie kann ich auf den Kopierpuffer im Internet zugreifen?
- 14. Wie verhindert man, dass Plugins auf Konfigurationsdateien zugreifen
- 15. Wie vermeidet man Gleitkommafehler?
- 16. Wie vermeidet man GeneratedSerializationConstructorAccessor Probleme?
- 17. Wie kann ich auf das Kotlin-Begleitobjekt in Java zugreifen?
- 18. Java Sockets und das Internet
- 19. Android-Entwicklung: Wie finde ich heraus, welche Anwendungen gerade auf das Internet zugreifen?
- 20. Wie vermeidet man das Einfügen von Duplikaten in MySQL?
- 21. Wie vermeidet man svn: mergeinfos auf Unterordner?
- 22. Verhindern, dass Ehcache beim Start auf das Internet zugreift
- 23. Wie vermeidet man Hyperlink-Erkennung auf Safari?
- 24. Wie vermeidet man eine Umleitung?
- 25. Wie vermeidet man den wiederholten Code in Java?
- 26. Zugriff auf das Internet auf Azure VM
- 27. Wie vermeidet man Kurzschlüsse in JavaScript?
- 28. Wie vermeidet man doppelte Anfrage?
- 29. XSL wie man NaN vermeidet
- 30. Zugreifen auf das nächste Element in Treeset in Java
Und das macht natürlich semantischen Sinn, weil Sie die Identifiers lieber als die Standorte vergleichen möchten – Gareth