love li fang fang forever

用java判断URL是否有效的两种工具类方法

• _posts

迁移源地址为:《用java判断URL是否有效的两种工具类方法》

转载标明 出处 程序员的修养

URLAvailability.java

URLAvailability.java

URL url;

try {

     url = new URL("<a href='http://www.baidu.com"' target="_blank">http://www.baidu.com"</a>);

     InputStream in = url.openStream();

     System.out.println("连接可用");

} catch (Exception e1) {

     System.out.println("连接打不开!");

     url = null;

}

备注:synchronized 。方法同步。下面完整UTILS。

package com.superproject.comm.utils;

import java.io.InputStream; import java.net.HttpURLConnection; import java.net.URL;

/**

  • @author 作者 staryumou@163.com:
  • @version 创建时间:2016年1月5日 上午10:37:33 类说明 : */ public class WtURLAvailability { public static boolean isURLAvailability(String url) { boolean status = false; URL urls; try { urls = new URL(url); InputStream is = urls.openStream(); System.out.println(“地址链接可用”); status = true;

} catch (Exception e) { System.out.println(“地址链接不可用”); status = false; } return status; }

private static URL url;

private static HttpURLConnection con;

private static int state = -1;

/** *

  • 功能:检测当前URL是否可连接或是否有效, *
  • 描述:最多连接网络 5 次, 如果 5 次都不成功,视为该地址不可用 *
  • @param urlStr
  • 指定URL网络地址 *
  • @return URL,为空无效,不为空有效链接。 */

public synchronized URL isConnect(String urlStr) { int counts = 0; if (urlStr == null || urlStr.length() <= 0) { return null; } while (counts < 5) { try { url = new URL(urlStr); con = (HttpURLConnection) url.openConnection(); state = con.getResponseCode(); System.out.println(counts + “= “ + state); if (state == 200) { System.out.println(“URL可用!”); } break; } catch (Exception ex) { counts++; System.out.println(“URL不可用,连接第 “ + counts + “ 次”); urlStr = null; continue; } } return url; } }