2017-10-05 65 views

回答

0

如果您使用Spring.This包,還可以嘗試「UriComponentsBuilder」,該包還包含可能滿足您需求的其他選項。

UriComponentsBuilder.fromPath("URL String"); 

如果你不使用Spring可以使用 「UrlValidator」 由 「apache.commons」

String[] schemes = {"http","https"}; // DEFAULT schemes = "http", "https", "ftp" 
     UrlValidator urlValidator = new UrlValidator(schemes); 
     if (urlValidator.isValid("urlString")) { 
      System.out.println("URL is valid"); 
     } else { 
      System.out.println("URL is invalid"); 
     } 
+0

它會逃脫「+」字符嗎? –

0

URI類應該能夠爲你做這個給定的。具體而言,使用

URI​(String scheme, String userInfo, String host, 
    int port, String path, String query, String fragment) 

URI​(String scheme, String authority, String path, String query, 
    String fragment)  

創建URI對象,其中,你提供的組件不被編碼。然後使用URI.toString()URI.toASCIIString()生成正確編碼的URL。


編碼器應逃脫字符 '+'。我遇到的所有方法都對它進行了編碼。

將'+'編碼爲%2B%是正確的行爲。 URL/URI規範不支持轉義。無論您如何嘗試逃避它,URL中任何未編碼的「+」都將解碼爲空格字符。規格說明就是這樣。

+0

那麼,我無法在地址欄中顯示'+'嗎? –

+0

這取決於地址欄的實現;即它是否自動解碼URL以顯示它。 –