2008-11-13 6 views

Antwort

18

Verwenden java.net.URI statt URL.

+2

Und das macht natürlich semantischen Sinn, weil Sie die Identifiers lieber als die Standorte vergleichen möchten – Gareth

1

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.

+0

Wie soll ich auf Gleichheit prüfen? – Mnementh

+2

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. –

+0

Ich habe gerade Bills Antwort neu geordnet. Rufen Sie einfachURI() für Ihre URL-Objekte auf. –

3

Wenn Sie nur die URL-Strings vergleichen wollen, versuchen

url1.toString().equals(url2.toString()) 
+0

Die beiden Strings könnten sehr unterschiedlich sein, weisen aber auf dieselbe Ressource hin. –

+2

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

Verwandte Themen