package com.xx.xx.utils;
import java.net.URL;
import java.net.URLConnection;
import org.apache.log4j.Logger;
/**
* 测试当前地址是否可连接可用
* @author tansirxd
* @date 2020年7月10日
* @version 1.0
*/
public class UrlUtils {
/**
* main线程内测试
* @param args 在命令行运行时候输入的参数
*/
public static void main(String[] args) {
String urlString = "";
UrlUtils.getInstance().testUrlWithTimeOut(urlString, 2000);
}
/**
* 单例模式[懒汉式单例]
*/
private static UrlUtils UrlUtilsSingle = null;
/**
* 日志
*/
private static Logger LOG = Logger.getLogger(UrlUtils.class);
/**
* 私有构造
*/
private UrlUtils() {
}
/**
* 双重检查,获取实例,对需要锁的代码部分加锁,避免整个方法被锁,可以提高执行效率
* @return URL工具对象
*/
public static UrlUtils getInstance() {
if (UrlUtilsSingle == null) {
synchronized (UrlUtils.class) {
if (UrlUtilsSingle == null) {
UrlUtilsSingle = new UrlUtils();
}
}
}
return UrlUtilsSingle;
}
/**
* 测试当前地址是否可连接可用
* @param urlString URL地址
* @param timeOutMillSeconds 超时时间
* @return 1:连接成功 | 0:连接失败
*/
public Integer testUrlWithTimeOut(String urlString,int timeOutMillSeconds){
LOG.info("当前连接地址:\n" + urlString);
long sTimeMillis = System.currentTimeMillis();
URL url;
try {
url = new URL(urlString);
URLConnection co = url.openConnection();
co.setConnectTimeout(timeOutMillSeconds);
co.connect();
LOG.info("连接成功,耗时:" + (System.currentTimeMillis() - sTimeMillis) + "毫秒");
return 1;
} catch (Exception e1) {
LOG.info("连接失败,耗时:" + (System.currentTimeMillis() - sTimeMillis) + "毫秒");
url = null;
return 0;
}
}
}
1. JAVA_测试URL是否可连接可用_自定义连接超时时间
最新推荐文章于 2023-03-31 17:48:22 发布