2015-05-04 72 views
-2

我有一個名爲Validationstatuscode.xlsx的excelsheet,其中包含表1中列A的URL列表。 我想驗證所有顯示http狀態200或400的URL。直到現在,我已經使用 http://httpstatus.io/一次驗證100個URL,但現在計數已增加。 那麼有可能在Java中驗證網址? 雖然我在java的知識,但不知道如何做到這一點?如何驗證網址狀態

+1

@SaqibRezwan據我所知,OP正在尋找一種方法來驗證HTTP狀態,而不是URL本身是否有效。 – Stephan

+0

@Stephan:是的..我正確..我很喜歡HTTP狀態。 –

回答

1

對於此問題,您可以使用java.net.HttpURLConnection,如下面的示例所示。這裏的關鍵是將返回HTTP代碼的getResponseCode方法,即200,400 ...。

package so; 

import java.io.IOException; 
import java.net.HttpURLConnection; 
import java.net.MalformedURLException; 
import java.net.URL; 

public class HttpRequest { 

    private int getWebPageStatus(String url) { 

     HttpURLConnection con = null; 
     try { 
      con = (HttpURLConnection) new URL(url).openConnection(); 
      return con.getResponseCode(); 

     } catch (MalformedURLException e) { 
      e.printStackTrace(); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } finally { 
      if (con != null) { 
       con.disconnect(); 
      } 
     } 

     return -1; 
    } 

    public static void main(String[] args) { 
     HttpRequest request = new HttpRequest(); 

     System.out.println("https://login.yahoo.com :" + request.getWebPageStatus("https://login.yahoo.com")); 
     System.out.println("https://www.google.co.in :" + request.getWebPageStatus("https://www.google.co.in")); 
     System.out.println("https://www.gmail.com :" + request.getWebPageStatus("https://www.gmail.com")); 
     System.out.println("https://xyz.co.in  :" + request.getWebPageStatus("https://xyz.co.in")); 
    } 

} 
+0

: - 感謝您的回答。我想知道,在連接之前,即con =(HttpURLConnection)新的URL(url).openConnection();實現URLEncoder? –