用JAVA判断一个URL是否有效

本文介绍了一种使用Java的URL和HttpURLConnection类检测URL地址是否可用的方法。通过比较openStream()和getResponseCode()两种方法,后者在效率上更具优势。文章提供了一个名为URLAvailability的类,该类能够尝试多次连接直至成功或最终判定URL无效。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

Java代码 收藏代码
  1. try{
  2. url=newURL("http://127.0.0.1/sj/user/getUser");
  3. in=url.openStream();
  4. }catch(Exceptione1){
  5. System.out.println("连接打不开!");
  6. url=null;
  7. }

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

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

Java代码 收藏代码
  1. /**
  2. *文件名称为:URLAvailability.java
  3. *文件功能简述:描述一个URL地址是否有效
  4. *@authorJason
  5. *@time2010-9-14
  6. *
  7. */
  8. publicclassURLAvailability{
  9. privatestaticURLurl;
  10. privatestaticHttpURLConnectioncon;
  11. privatestaticintstate=-1;
  12. /**
  13. *功能:检测当前URL是否可连接或是否有效,
  14. *描述:最多连接网络5次,如果5次都不成功,视为该地址不可用
  15. *@paramurlStr指定URL网络地址
  16. *@returnURL
  17. */
  18. publicsynchronizedURLisConnect(StringurlStr){
  19. intcounts=0;
  20. if(urlStr==null||urlStr.length()<=0){
  21. returnnull;
  22. }
  23. while(counts<5){
  24. try{
  25. url=newURL(urlStr);
  26. con=(HttpURLConnection)url.openConnection();
  27. state=con.getResponseCode();
  28. System.out.println(counts+"="+state);
  29. if(state==200){
  30. System.out.println("URL可用!");
  31. }
  32. break;
  33. }catch(Exceptionex){
  34. counts++;
  35. System.out.println("URL不可用,连接第"+counts+"次");
  36. urlStr=null;
  37. continue;
  38. }
  39. }
  40. returnurl;
  41. }
  42. }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值