一、检测ip是否连通
/**
* 检测IP地址是否能ping通
*
* @param ip IP地址
* @param timeout 检测超时(毫秒)
* @return 是否ping通
*/
public static boolean ping(String ip, int timeout) {
try {
return InetAddress.getByName(ip).isReachable(timeout); // 当返回值是true时,说明host是可用的,false则不可。
} catch (Exception ex) {
return false;
}
}
二、检测一个网页URL是否连通
/**
* 检测URL是否能连通
*
* @param urlStirng
* @return
*/
public static boolean checkUrl(String urlStirng) {
try {
URL url = new java.net.URL(urlStirng);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection = (HttpURLConnection) url.openConnection();
connection.setRequestProperty("User-Agent", "Mozilla/4.0");
connection.setRequestMethod("GET");
// 设置单次请求是否支持重定向,默认为 setFollowRedirects 方法设置的值
connection.setInstanceFollowRedirects(false);
connection.setConnectTimeout(500);
connection.connect();
System.out.println(connection.getResponseCode());
if (connection.getResponseCode() == 200) {//判断状态码
String htmlCode = "";
InputStream in = connection.getInputStream();
byte[] buffer = new byte[500];
in.read(buffer);
htmlCode = new String(buffer);
if (htmlCode.contains("错误页") || htmlCode.contains("{\"message\":\"请求的URI地")) {//拿到返回内容判断是否返回的是错误页
return false;
}
} else {
return false;
}
} catch (IOException e) {
return false;
}
return true;
}
三、检测API接口是否连通
- 只能通过状态码是否为404判断,如果网络不通则会连接失败到 catch 中返回false
/**
* 检测API是否能连通
*
* @param urlStirng
* @return
*/
public static boolean checkUrl(String urlStirng) {
try {
URL url = new java.net.URL(urlStirng);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection = (HttpURLConnection) url.openConnection();
connection.setRequestProperty("User-Agent", "Mozilla/4.0");
connection.setRequestMethod("GET");
// 设置单次请求是否支持重定向,默认为 setFollowRedirects 方法设置的值
connection.setInstanceFollowRedirects(false);
connection.setConnectTimeout(500);
connection.connect();
System.out.println(connection.getResponseCode());
if (connection.getResponseCode() != 404) {//判断状态码
return true;
} else {
return false;
}
} catch (IOException e) {
return false;
}
}
- 请求方式必须全部字母大写,比如POST请求,不能写成post请求
- 如果请求方式错误,并不会连接失败,而是请求码得到的为405错误。但是得到的是405状态码非200状态码,可以显示连通。
其他
需要使用的maven依赖
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.13</version>
</dependency>
参考文档
- JAVA检测url是否可用
文章来源地址https://www.toymoban.com/news/detail-692980.html
文章来源:https://www.toymoban.com/news/detail-692980.html
到了这里,关于Java检测网络是否连通检查ip、URL和API接口的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!