127 lines
4.3 KiB
Java
127 lines
4.3 KiB
Java
package com.lovenav.utils;
|
|
import java.io.BufferedReader;
|
|
|
|
import com.alibaba.fastjson2.JSON;
|
|
import org.apache.http.client.config.RequestConfig;
|
|
import org.apache.http.client.methods.CloseableHttpResponse;
|
|
import org.apache.http.client.methods.HttpGet;
|
|
import org.apache.http.impl.client.CloseableHttpClient;
|
|
import org.apache.http.impl.client.HttpClients;
|
|
|
|
import java.io.IOException;
|
|
import java.io.InputStreamReader;
|
|
import java.net.*;
|
|
import javax.net.ssl.HttpsURLConnection;
|
|
|
|
public class UrlCheckUtil {
|
|
|
|
/**
|
|
* 判断链接是否有效
|
|
* 输入链接
|
|
* 返回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;
|
|
}
|
|
|
|
/**
|
|
* 判断链接是否有效
|
|
* 输入链接
|
|
*/
|
|
public static String checkUrlConnection(String url) {
|
|
// 创建http POST请求
|
|
HttpGet httpGet = new HttpGet(url);
|
|
httpGet.setHeader("Content-Type", "application/json");
|
|
RequestConfig requestConfig = RequestConfig.custom().setConnectTimeout(600)// 设置连接主机服务超时时间
|
|
.setConnectionRequestTimeout(1000)// 设置连接请求超时时间
|
|
.setSocketTimeout(1000)// 设置读取数据连接超时时间
|
|
.build();
|
|
// 为httpPost实例设置配置
|
|
httpGet.setConfig(requestConfig);
|
|
// 设置请求头
|
|
CloseableHttpClient httpclient = null;
|
|
CloseableHttpResponse response = null;
|
|
int statusCode = 404;
|
|
try {
|
|
httpclient = HttpClients.createDefault();// 创建Httpclient对象
|
|
response = httpclient.execute(httpGet);// 执行请求
|
|
statusCode = response.getStatusLine().getStatusCode();
|
|
}catch (SocketException e) {
|
|
return "404";
|
|
} catch (IOException e) {
|
|
System.out.println("报错");
|
|
return "404";
|
|
}
|
|
return String.valueOf(statusCode);
|
|
}
|
|
|
|
/**
|
|
* 检查http连接
|
|
*/
|
|
public static boolean CheckHttp(String address) throws URISyntaxException, MalformedURLException {
|
|
URL url = new URL(address);
|
|
URI uri = url.toURI();
|
|
// System.out.println(uri.getScheme());
|
|
if(uri.getScheme().equals("https")){
|
|
return true;
|
|
}else
|
|
return false;
|
|
}
|
|
|
|
/**
|
|
* 发送GET请求
|
|
*/
|
|
public static String sendGetRequest(String url) throws IOException {
|
|
URL requestUrl = new URL(url);
|
|
HttpURLConnection connection = (HttpURLConnection) requestUrl.openConnection();
|
|
connection.setRequestMethod("GET");
|
|
|
|
int responseCode = connection.getResponseCode();
|
|
if (responseCode == HttpURLConnection.HTTP_OK) {
|
|
BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
|
|
StringBuilder response = new StringBuilder();
|
|
String line;
|
|
while ((line = reader.readLine()) != null) {
|
|
response.append(line);
|
|
}
|
|
reader.close();
|
|
return response.toString();
|
|
} else {
|
|
throw new RuntimeException("HTTP GET request failed with response code: " + responseCode);
|
|
}
|
|
}
|
|
|
|
public static String url_speed(String url) {
|
|
String url_check = url;
|
|
int numRequests = 10;
|
|
long totalResponseTime = 0;
|
|
|
|
for (int i = 0; i < numRequests; i++) {
|
|
long startTime = System.currentTimeMillis();
|
|
try {
|
|
UrlCheckUtil.sendGetRequest(url_check);
|
|
long endTime = System.currentTimeMillis();
|
|
long responseTime = endTime - startTime;
|
|
totalResponseTime += responseTime;
|
|
} catch (IOException e) {
|
|
e.printStackTrace();
|
|
}
|
|
}
|
|
double averageResponseTime = (double) totalResponseTime / (1 * numRequests);
|
|
return JSON.toJSONString(averageResponseTime + " ms");
|
|
}
|
|
}
|