2010-10-05 5 views
3

je le code java suivant:Apache Commons UrlValidator

UrlValidator urlValidator = new UrlValidator(); 
boolean validUrl = urlValidator.isValid("http://www.google.com"); 
System.out.println("result: " + validUrl); 

Quand je lance le code ci-dessus, je reçois toujours:

résultat: false

Pourquoi communes apache UrlValidator ne considère pas "http://www.google.com" comme valide? Si je remplace "http://www.google.com" par "http://www.google.com/index.php", j'obtiens "résultat: vrai". Cependant, mes utilisateurs ont une utilisation légitime pour soumettre des URL qui ne se terminent pas dans un nom de fichier spécifique.

Répondre

4

Vous utilisez une version plus ancienne du validateur de commons. Ce bug a été résolu après la version 1.2. Essayez la dernière version du validateur (1.3.1) et cela devrait fonctionner correctement.

+0

Il semble que j'utilise la version 1.1.4 de 2006. Malheureusement, mon client n'approuve pas les versions de «mise à niveau», donc je vais devoir chercher une autre solution de contournement. Puisque c'est la réponse techniquement correcte, je l'ai marqué comme accepté. – David

+0

Hey, j'utilise aussi URLValidator pour le lien ci-dessous. https://www.dropbox.com/s/iosxmpsj3ybmosk/LC9032THB%20BLK...JPG?m= Mais il lance une erreur dans ce lien. J'ai changé le lien à https://www.dropbox.com/s/iosxmpsj3ybmosk/LC9032THB%20BLK..JPG?m= Il a commencé à bien fonctionner. La seule différence entre les 2 liens est que le premier a 3 points et le second a deux points. Toutes les idées pour lesquelles cela se passe. – user1385154

+0

Le validateur Apache commons ne considère pas trois points comme des URL valides. C'était au moins le cas avec les communs Apache avec qui je travaillais. –

Questions connexes