2015-05-04 73 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? –