java怎么判断一个网站是否可以访问

2025-10-26 02:05:22

1、检查URL是否正确:

URI   uri= new URI(url);

  如果该方法抛出异常URISyntaxException,那说明这个url不正确,但是遇到一个url地址中包含字符串^时也会抛出异常,可是这个含有^的链接却是一个有效的地址,比如百度中的某些地址,所以方法应该这样写:

java怎么判断一个网站是否可以访问

2、 URL uri= new URL(incon);

URI uri= new URI(uri.getProtocol(), uri.getHost(), uri.getPath(), uri.getQuery(), null);//加上这句

测试一下带^ 符号的地址,如下图所示。

java怎么判断一个网站是否可以访问

3、URL正确后,后台代码,检查链接是否能打开。

URL url;

try {

url = new URL(urlString);

URLConnection co =  url.openConnection();

co.setConnectTimeout(timeOutMillSeconds);

co.connect();

System.out.println("连接可用");

} catch (Exception e1) {

System.out.println("连接打不开!");

url = null;

}

java怎么判断一个网站是否可以访问

4、完整代码如下:

package Isvalide;

import java.net.URI;

import java.net.URISyntaxException;

import java.net.URL;

import java.net.URLConnection;

/**普通类*/

public class IsValide {

public static void main(String[] args) {

try {

System.out.println(isValidUrl("http://www.baidu.com?qww^=23")+"---正确地址");

UrlWithTime("http://www.baidu.com?qww^=23",1000);

} catch (Exception e) {

System.out.println("链接不正确");

e.printStackTrace();

}

}

 public static void UrlWithTime(String urlString,int timeOutMillSeconds){

       long lo = System.currentTimeMillis();

       URL url;  

       try {  

            url = new URL(urlString);  

            URLConnection co =  url.openConnection();

            co.setConnectTimeout(timeOutMillSeconds);

            co.connect();

            System.out.println("连接可用");  

       } catch (Exception e1) {  

            System.out.println("连接打不开!");  

            url = null;  

       }  

       System.out.println(System.currentTimeMillis()-lo);

   }

private static final String acceptableSchemes[] = {

"http:",

"https:",

"file:"

};

private static boolean urlHasAcceptableScheme(String url) {

if (url == null) {

return false;

}

for (int i = 0; i < acceptableSchemes.length; i++) {

if (url.startsWith(acceptableSchemes[i])) {

return true;

}

}

return false;

}

private static String isValidUrl(String incommingString) throws Exception{

URL urlObj = new URL(incommingString);

URI uriObj = new URI(urlObj.getProtocol(), urlObj.getHost(), urlObj.getPath(), urlObj.getQuery(), null);

String scheme = uriObj.getScheme();

if (!urlHasAcceptableScheme(incommingString)) {

if (scheme != null) {

throw new URISyntaxException("", "");

}

}

return incommingString;

}

}

java怎么判断一个网站是否可以访问

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢