package com.ddln.test; import java.net.HttpURLConnection; import java.net.URL; public class URLConnect { private static URL url; private static HttpURLConnection con; private static int state = -1; /** * 功能:检测当前URL是否可连接或是否有效, * 描述:链接url地址,链接失败则返回null * @param urlStr 指定URL网络地址 * @return URL */ public synchronized static String isConnect(String urlStr) { if (urlStr == null || urlStr.length() <= 0) { return null; } try { url = new URL(urlStr); con = (HttpURLConnection) url.openConnection(); state = con.getResponseCode(); // System.out.println("状态= "+state); if (state == 200) { // System.out.println("URL可用!"); } }catch (Exception ex) { urlStr = null; } //释放资源 con.disconnect(); return urlStr; } public static void main(String[] args) { int state=0; String strURL[] = {"http://www.hao360.com","http://www.baidu.com","http://www.hao360dfdffdq.com","http://www.hao360dddd3123f.com","http://www.hao360.com"}; int errorURL[] =new int[strURL.length]; //访问所有的url地址 for(int i=0; i<strURL.length; i++){ String url = URLConnect.isConnect(strURL[i]); // System.out.println("url的状态="+url); //如果访问失败就记录下来 if(url==null){ System.out.println("第"+(i+1)+"个"+strURL[i]+"url地址不可以访问"); errorURL[state]=i; state++; } else{ System.out.println("第"+(i+1)+"个"+strURL[i]+"url地址可以访问"); } } for(int i=0; i<errorURL.length; i++){ if(errorURL[i]==0){ break; } System.out.println(errorURL[i]); System.out.println(strURL[errorURL[i]]); } //第二次访问 state=0; for(int i=0; i<errorURL.length; i++){ //如果errorURL[i]==0 后面没有可以的网址 退出循环 if(errorURL[i]==0){ break; } //继续访问 String url = URLConnect.isConnect(strURL[errorURL[i]]); //如果访问失败就记录下来 if(url==null){ System.out.println("第"+(i+1)+"个"+strURL[errorURL[i]]+"url地址不可以访问"); System.out.println("输出="+strURL[errorURL[i]]); errorURL[state] = errorURL[i]; System.out.println(errorURL[state]); state++; } else{ System.out.println("第"+(i+1)+"个"+strURL[errorURL[i]]+"url地址可以访问"); } } for(int i=0; i<errorURL.length; i++){ if(errorURL[i]==0){ break; } System.out.println("最后:"+errorURL[i]); } //第三次访问 state=0; for(int i=0; i<errorURL.length; i++){ //如果errorURL[i]==0 后面没有可以的网址 退出循环 if(errorURL[i]==0){ break; } //继续访问 String url = URLConnect.isConnect(strURL[errorURL[i]]); //如果访问失败就记录下来 if(url==null){ System.out.println("第"+(i+1)+"个"+strURL[errorURL[i]]+"url地址不可以访问"); System.out.println("输出="+strURL[errorURL[i]]); errorURL[state] = errorURL[i]; System.out.println(errorURL[state]); state++; } else{ System.out.println("第"+(i+1)+"个"+strURL[errorURL[i]]+"url地址可以访问"); } } //睡眠10秒 try { Thread.sleep(10000); System.out.println("ssss"); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } System.out.println("睡眠后的访问"); state=0; for(int i=0; i<errorURL.length; i++){ //如果errorURL[i]==0 后面没有可以的网址 退出循环 if(errorURL[i]==0){ break; } //继续访问 String url = URLConnect.isConnect(strURL[errorURL[i]]); //如果访问失败就记录下来 if(url==null){ System.out.println("第"+(i+1)+"个"+strURL[errorURL[i]]+"url地址不可以访问"); System.out.println("输出="+strURL[errorURL[i]]); errorURL[state] = errorURL[i]; System.out.println(errorURL[state]); state++; } else{ System.out.println("第"+(i+1)+"个"+strURL[errorURL[i]]+"url地址可以访问"); } } } }
超好用! 0.0