2008-11-13 2 views

Répondre

18

Utiliser java.net.URI au lieu d'URL.

+2

Et bien sûr cela a aussi un sens sémantique, parce que vous voulez comparer les identifiants plutôt que les emplacements – Gareth

1

N'utilisez pas URL.equals. Comme le dit la documentation,

Remarque: Le comportement défini pour equals est connu pour être incompatible avec l'hébergement virtuel dans HTTP.

+0

Comment devrais-je tester l'égalité? – Mnementh

+2

Vous pouvez utiliser toString() ou toExternalForm() pour obtenir le formulaire externe et les comparer. Les tests préliminaires montrent ici qu'il n'accède pas au DNS. –

+0

Je viens de mettre à jour la réponse de Bill. Appelez simplement àURI() sur vos objets URL. –

3

Si vous voulez juste pour comparer les chaînes d'URL, essayez

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

Les deux chaînes peuvent être très différentes mais pointer vers la même ressource. –

+2

Si vous souhaitez vérifier la ressource référencée par une URL, vous avez évidemment besoin d'un accès Internet. Par conséquent, j'ai fait l'hypothèse qu'il voulait comparer les URL eux-mêmes. D'où ma qualification de "si vous voulez juste comparer les cordes d'URL". – Rick

Questions connexes