JAVA判断一个URL是不是有效

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JAVA判断一个URL是不是有效相关的知识,希望对你有一定的参考价值。

1、有效的定义是url合法还是url可以访问?
2、如果仅仅是地址的书写合法性可以通过正则或者类型转换来校验合法性
3、如果是联通性有效,即地址需要能正确访问的话需要构建HTTP(HTTPS等)请求来看response的返回码是不是200、302、500等若果是404则标识无效。
参考技术A /** * 验证URL合法性 * * @param url * @return true:合法 false:不合法 */public static boolean checkUrl(String url) return url.matches("^((https|http|ftp|rtsp|mms)?://)" + "+(([0-9a-z_!~*'().&=+$%-]+: )?[0-9a-z_!~*'().&=+$%-]+@)?" + "(([0-9]1,3\\.)3[0-9]1,3" + "|" + "([0-9a-z_!~*'()-]+\\.)*" + "([0-9a-z][0-9a-z-]0,61)?[0-9a-z]\\." + "[a-z]2,6)" + "(:[0-9]1,10)?" + "((/?)|" + "(/[0-9a-z_!~*'().;?:@&=+$,%#-]+)+/?)$");

Java判断url(链接)是否有效

在java中如何判断url是否有效?博主在这给大家封装了一个方法大家直接拿去用即可。

package com.jzmy.specialist.entity.util;

import java.net.HttpURLConnection;
import java.net.URL;

/**
    @author mengzhichao
    @create 2022-11-09-11:24
*/public class UrlUtil 

    /**
     * 判断链接是否有效
     * 输入链接
     * 返回true或者false
     */
    public static boolean isUrlValid(String strLink) 
        URL url;
        try 
            url = new URL(strLink);
            HttpURLConnection connt = (HttpURLConnection)url.openConnection();
            connt.setRequestMethod("HEAD");
            String strMessage = connt.getResponseMessage();
            if (strMessage.compareTo("Not Found") == 0) 
                return false;
            
            connt.disconnect();
         catch (Exception e) 
            return false;
        
        return true;
    

这个方法在遇到正确的 url 就会返回 true,错误的路径(包括打不开404等)都会返回 fales

  • 下面我们进行一下相关的测试。
    public static void main(String[] args) 
        boolean trueUrl = isUrlValid("https://www.baidu.com");
        boolean falseUrl = isUrlValid("https://www.fjdksjfdskfgmmgmgg.com");
        System.out.println("正确的链接:"+ trueUrl);
        System.out.println("错误的链接:"+ falseUrl);
    

这个方法个别的链接会出现误判的操作,大家有更好的方法可以在评论区留言哦!

以上是关于JAVA判断一个URL是不是有效的主要内容,如果未能解决你的问题,请参考以下文章

Java判断url(链接)是否有效

Java判断url(链接)是否有效

js检测判断链接是不是有效

求一个js判断url是不是可用(正常访问)的方法

使用java判断输入身份证号位数是不是正确,判断输入是不是有效

js 检测网址是不是能正常访问用js实现,判断指定的url是不是有效,涉及到跨域,返回的状态是0,求大神指教,