用java判断url是否有效

针对一些URL地址进行检测是否可用,使用java.net 下的类来实现,主要用到了 URL和HttpURLConnection 二个类 ,URL 是统一资源标识符的引用,一个URL实例代表着一个url的引用,开始使用了URL中的的openStream()方法,这样使用倒是可以,但是速度慢,代码如下:

Java代码  复制代码  收藏代码
  1. try {   
  2.      url = new URL("http://127.0.0.1/sj/user/getUser");   
  3.      in = url.openStream();   
  4. catch (Exception e1) {   
  5.      System.out.println("连接打不开!");   
  6.      url = null;   
  7. }  
[java]  view plain  copy
  1. try {  
  2.      url = new URL("http://127.0.0.1/sj/user/getUser");  
  3.      in = url.openStream();  
  4. catch (Exception e1) {  
  5.      System.out.println("连接打不开!");  
  6.      url = null;  
  7. }  
 

 

下面判断url是不是null就可以了,速度慢

最后使用了HttpURLConnection 中的 getResponseCode();方法,HttpURLConnection : 通常一个HttpURLConnection 的实例可以生成一个请求,它有个方法 getResponseCode();可以得到请求的响应状态,该方法返回一个 int 分别是 200 and 404 如无法从响应中识别任何代码则返回 -1,代码如下:

 

 

Java代码  复制代码  收藏代码
  1. /**  
  2.       * 功能:检测当前URL是否可连接或是否有效,  
  3.       * 描述:最多连接网络 3 次, 如果 3 次都不成功,视为该地址不可用  
  4.       * @param  urlStr 指定URL网络地址  
  5.       * @return URL  
  6.       */  
  7.      public synchronized String isConnect(String urlStr) {   
  8.          int counts = 0;   
  9.          retu = "";   
  10.          if (urlStr == null || urlStr.length() <= 0) {                          
  11.              return null;                    
  12.          }   
  13.          while (counts < StaticConstant.REQUEST_COUNT) {   
  14.              long start = 0;   
  15.              try {   
  16.                  url = new URL(urlStr);   
  17.                  start = System.currentTimeMillis();   
  18.                  con = (HttpURLConnection) url.openConnection();   
  19.                  state = con.getResponseCode();   
  20.                  log.info("请求断开的URL一次需要:"+(System.currentTimeMillis()-start)+"毫秒");   
  21.                  if (state == 200) {   
  22.                      retu = "ok";   
  23.                      log.info(urlStr+"--可用");   
  24.                  }   
  25.                  break;   
  26.              }catch (Exception ex) {   
  27.                  counts++;    
  28.                  log.info("请求断开的URL一次需要:"+(System.currentTimeMillis()-start)+"毫秒");   
  29.                  log.info("连接第 "+counts+" 次,"+urlStr+"--不可用");   
  30.                  continue;   
  31.              }   
  32.          }   
  33.          return retu;   
  34.      }  
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值