从文本中取出链接地址 并检测链接地址能否打开

原文链接:https://www.cnblogs.com/dongguacha/p/5787709.html

 

/**
 * 
 */
package com.zx.znyd.dao;

import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLConnection;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * @author lch
 * @date 2021年6月15日
 * @Description TODO
 * @version
 */
public class TestURL {

    /**
     * @author leichunhui
     * @date 2021年6月15日
     * @Description TODO
     * @version @param args
     */
    public static void main(String[] args) {
        /*String validUrl = "https://app.10086.cn/DL100ex?functionCode=BF01000";
        String invalidUrl = "https://apiserv.cmicrwx.cn/cmcc/rights/scene/rightsbaw/123index.html#";
        boolean isValidUrl = name(validUrl);
        System.out.println(isValidUrl);*/
        System.out.println(getUrl());
    }

    private static boolean name(String urlString) {
        int status = 404;
        try {

            URL url = new URL(urlString);
             HttpURLConnection oc = (HttpURLConnection) url.openConnection();
                oc.setUseCaches(false);
                oc.setConnectTimeout(3000); // 设置超时时间
                status = oc.getResponseCode();// 请求状态
                if (200 == status) {
                    // 200是请求地址顺利连通。
                    System.out.println("连接可用");
                    return true;
                }
                System.out.println("连接打不开!");
                return false;

        } catch (Exception e1) {
            System.out.println("连接打不开!");
            return false;
        }

    }
    
    private static String getUrl() {
        String baseURL1 = "点击<a href='https://app.10086.cn/DL100ex?functionCode=BF01000'>【详单查询】</a>,选择通话详单即可。";
        String baseURL2 = "点击<a href='https://app.10086.cn/activity/transit/transferDownload.html?targetURL=https%3A%2F%2Fapp.10086.cn%2Fcmcc-app%2Fvoice%2Fvoice.html'>【语音查询】</a>";
        String baseURL3="点击<a href='https://app.10086.cn/DL100ex?functionCode=BF01000'>【详单查询】</a>,选择通话详单即可。【为向您提供更好的积分服务,积分商城的积分转赠功能系统升级,暂不支持该业务。不影响正常兑换,恢复时间另行通知。】客户可通过以下方式转移积分:1、发送短信“zz#受让人手机号”至“10658999”;2、积分商城WEB网站:通过登录积分商城网站(https://jf.1008.cn),在“我的帐户”中点击“积分转移”进行转移。";
        String regex="(https?|ftp|file)://[-A-Za-z0-9+&@#/%?=~_|!:,.;]+[-A-Za-z0-9+&@#/%=~_|]";
        Pattern pattern = Pattern.compile(regex);
        Matcher matcher = pattern.matcher(baseURL3);
        if(matcher.find()){
            return matcher.group();
        }
        return baseURL3;
        
    }

}

 

posted @ 2021-06-15 09:56  沉默小和尚  阅读(602)  评论(0编辑  收藏  举报