2010-10-05 97 views
3

我有以下的Java代碼:Apache的百科全書UrlValidator

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

當我運行上面的代碼,我總是得到:

結果:假

爲什麼阿帕奇百科全書UrlValidator不把「http://www.google.com」視爲有效?如果我將「http://www.google.com」替換爲「http://www.google.com/index.php」,我會得到「result:true」。但是,我的用戶確實有合法的用途來提交不以特定文件名結尾的網址。

回答

4

您正在使用舊版本的commons validator。這個錯誤在1.2版後發佈。

嘗試使用最新的驗證器版本(1.3.1),它應該工作正常。

+0

看起來我使用的是2006年版本1.1.4。不幸的是,我的客戶不贊成「升級」版本,所以我不得不尋找另一種解決方法。由於這是技術上正確的答案,因此我將其標記爲已接受。 – David 2010-10-05 17:49:38

+0

嘿,我也在使用URLValidator進行下面的鏈接。 https://www.dropbox.com/s/iosxmpsj3ybmosk/LC9032THB%20BLK...JPG?m=但它會在該鏈接中引發錯誤。我將鏈接更改爲https://www.dropbox.com/s/iosxmpsj3ybmosk/LC9032THB%20BLK..JPG?m=它開始正常工作。兩個鏈接的唯一區別在於第一個鏈接有3個點,第二個鏈接有兩個點。任何想法爲什麼發生這種情況。 – user1385154 2014-06-09 03:51:12

+0

Apache commons驗證程序不會將三個點視爲有效的url。這與我正在使用的apache commons至少是一樣的。 – 2014-06-09 06:13:28