houzhongjian
2025-01-10 d7fd4674d6fd40f6f7561e7e1eaac4b84bd9e974
将data模块中的HttpRequest util工具方法移到common中的HttpUtils中
已修改4个文件
468 ■■■■ 文件已修改
iailab-framework/iailab-common/src/main/java/com/iailab/framework/common/util/http/HttpUtils.java 226 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/channel/http/collector/ihdb/HttpCollectorForIhd.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/channel/kio/collector/KingIOClient.java 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/common/utils/HttpRequest.java 217 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-framework/iailab-common/src/main/java/com/iailab/framework/common/util/http/HttpUtils.java
@@ -5,13 +5,21 @@
import cn.hutool.core.net.url.UrlBuilder;
import cn.hutool.core.util.ReflectUtil;
import cn.hutool.core.util.StrUtil;
import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils;
import org.springframework.web.util.UriComponents;
import org.springframework.web.util.UriComponentsBuilder;
import javax.servlet.http.HttpServletRequest;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.URI;
import java.net.URL;
import java.net.URLConnection;
import java.nio.charset.Charset;
import java.util.List;
import java.util.Map;
/**
@@ -122,5 +130,223 @@
        return null;
    }
    /**
     * 向指定URL发送GET方法的请求
     *
     * @param url   发送请求的URL
     * @param param 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。
     * @return URL 所代表远程资源的响应结果
     */
    public static String sendGet(String url, String param) {
        String result = "";
        BufferedReader in = null;
        try {
            String urlNameString = url + "?" + param;
            URL realUrl = new URL(urlNameString);
            // 打开和URL之间的连接
            URLConnection connection = realUrl.openConnection();
            // 设置通用的请求属性
            connection.setRequestProperty("accept", "*/*");
            connection.setRequestProperty("connection", "Keep-Alive");
            connection.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
            // 建立实际的连接
            connection.connect();
            // 获取所有响应头字段
            Map<String, List<String>> map = connection.getHeaderFields();
            // 遍历所有的响应头字段
            for (String key : map.keySet()) {
                System.out.println(key + "--->" + map.get(key));
            }
            // 定义 BufferedReader输入流来读取URL的响应
            in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
            String line;
            while ((line = in.readLine()) != null) {
                result += line;
            }
        } catch (Exception e) {
            System.out.println("发送GET请求出现异常!" + e);
            e.printStackTrace();
        }
        // 使用finally块来关闭输入流
        finally {
            try {
                if (in != null) {
                    in.close();
                }
            } catch (Exception e2) {
                e2.printStackTrace();
            }
        }
        return result;
    }
    public static String sendGet(String url, Map<String, String> params, String authorization) {
        String result = "";
        BufferedReader in = null;
        try {
            StringBuilder sb = new StringBuilder();
            sb.append(url);
            if (!CollectionUtils.isEmpty(params)) {
                sb.append("?");
                params.forEach((k, v) -> {
                    sb.append(k + "=" + v + "&");
                });
                sb.append("t=" + System.currentTimeMillis());
            }
            String urlNameString = sb.toString();
            URL realUrl = new URL(urlNameString);
            // 打开和URL之间的连接
            URLConnection connection = realUrl.openConnection();
            // 设置通用的请求属性
            connection.setRequestProperty("Authorization", authorization);
            connection.setRequestProperty("accept", "*/*");
            connection.setRequestProperty("connection", "Keep-Alive");
            connection.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
            // 建立实际的连接
            connection.connect();
            // 获取所有响应头字段
            Map<String, List<String>> map = connection.getHeaderFields();
            // 遍历所有的响应头字段
            for (String key : map.keySet()) {
                System.out.println(key + "--->" + map.get(key));
            }
            // 定义 BufferedReader输入流来读取URL的响应
            in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
            String line;
            while ((line = in.readLine()) != null) {
                result += line;
            }
        } catch (Exception e) {
            System.out.println("发送GET请求出现异常!" + e);
            e.printStackTrace();
        }
        // 使用finally块来关闭输入流
        finally {
            try {
                if (in != null) {
                    in.close();
                }
            } catch (Exception e2) {
                e2.printStackTrace();
            }
        }
        return result;
    }
    /**
     * 向指定 URL 发送POST方法的请求
     *
     * @param url
     * @param json
     * @return
     */
    public static String sendPost(String url, String json) {
        PrintWriter out = null;
        BufferedReader in = null;
        String result = "";
        try {
            URL realUrl = new URL(url);
            // 打开和URL之间的连接
            URLConnection conn = realUrl.openConnection();
            // 设置通用的请求属性
            conn.setRequestProperty("content-type", "application/json");
            conn.setRequestProperty("accept", "*/*");
            conn.setRequestProperty("connection", "Keep-Alive");
            conn.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
            // 发送POST请求必须设置如下两行
            conn.setDoOutput(true);
            conn.setDoInput(true);
            // 获取URLConnection对象对应的输出流
            out = new PrintWriter(conn.getOutputStream());
            // 发送请求参数
            out.print(json);
            // flush输出流的缓冲
            out.flush();
            // 定义BufferedReader输入流来读取URL的响应
            in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
            String line;
            while ((line = in.readLine()) != null) {
                result += line;
            }
        } catch (Exception e) {
            System.out.println("发送 POST 请求出现异常!" + e);
            e.printStackTrace();
        }
        //使用finally块来关闭输出流、输入流
        finally {
            try {
                if (out != null) {
                    out.close();
                }
                if (in != null) {
                    in.close();
                }
            } catch (IOException ex) {
                ex.printStackTrace();
            }
        }
        return result;
    }
    /**
     * 向指定 URL 发送POST方法的请求
     *
     * @param url
     * @param json
     * @param authorization
     * @return
     */
    public static String sendPost(String url, String json, String authorization) {
        PrintWriter out = null;
        BufferedReader in = null;
        String result = "";
        try {
            URL realUrl = new URL(url);
            // 打开和URL之间的连接
            URLConnection conn = realUrl.openConnection();
            // 设置通用的请求属性
            conn.setRequestProperty("Authorization", authorization);
            conn.setRequestProperty("accept", "*/*");
            conn.setRequestProperty("connection", "Keep-Alive");
            conn.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
            // 发送POST请求必须设置如下两行
            conn.setDoOutput(true);
            conn.setDoInput(true);
            // 获取URLConnection对象对应的输出流
            out = new PrintWriter(conn.getOutputStream());
            // 发送请求参数
            out.print(json);
            // flush输出流的缓冲
            out.flush();
            // 定义BufferedReader输入流来读取URL的响应
            in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
            String line;
            while ((line = in.readLine()) != null) {
                result += line;
            }
        } catch (Exception e) {
            System.out.println("发送 POST 请求出现异常!" + e);
            e.printStackTrace();
        }
        //使用finally块来关闭输出流、输入流
        finally {
            try {
                if (out != null) {
                    out.close();
                }
                if (in != null) {
                    in.close();
                }
            } catch (IOException ex) {
                ex.printStackTrace();
            }
        }
        return result;
    }
}
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/channel/http/collector/ihdb/HttpCollectorForIhd.java
@@ -5,6 +5,7 @@
import com.alibaba.fastjson.JSONObject;
import com.google.gson.Gson;
import com.iailab.framework.common.constant.CommonConstant;
import com.iailab.framework.common.util.http.HttpUtils;
import com.iailab.module.data.channel.http.entity.HttpApiEntity;
import com.iailab.module.data.channel.http.service.HttpApiService;
import com.iailab.module.data.common.enums.DataSourceType;
@@ -108,7 +109,7 @@
        tagSb.append(jsonString);
        tagSb.append("]");
        String currentDate = DateUtils.format(new Date(), pattern);
        String responseStr = HttpRequest.sendPost(httpApi.getUrl() + "/" + currentDate, tagSb.toString());
        String responseStr = HttpUtils.sendPost(httpApi.getUrl() + "/" + currentDate, tagSb.toString());
        JSONObject responseObj = JSON.parseObject(responseStr);
        if (STA_TRUE.equals(responseObj.get(IS_SUCCESS).toString())) {
            JSONArray tagValueList = responseObj.getJSONArray("data");
@@ -150,7 +151,7 @@
            log.info("body=====" + tagSb);
            String currentDate = DateUtils.format(new Date(), pattern);
            String responseStr = "";
            responseStr = HttpRequest.sendPost(httpApi.getUrl().replace("getPointdatasAvg", "getPointslast") + "/" + currentDate, tagSb);
            responseStr = HttpUtils.sendPost(httpApi.getUrl().replace("getPointdatasAvg", "getPointslast") + "/" + currentDate, tagSb);
            JSONObject responseObj = JSON.parseObject(responseStr);
            if (STA_TRUE.equals(responseObj.get(IS_SUCCESS).toString())) {
                JSONArray tagValueList = responseObj.getJSONArray("data");
@@ -279,7 +280,7 @@
            tagSb.append("]");
            log.info("body=====" + tagSb);
            String currentDate = DateUtils.format(collectTime, pattern);
            String responseStr = HttpRequest.sendPost(url + "/" + currentDate, tagSb.toString());
            String responseStr = HttpUtils.sendPost(url + "/" + currentDate, tagSb.toString());
            JSONObject responseObj = JSON.parseObject(responseStr);
            log.info("responseObj=====" + responseObj.toJSONString());
            if (STA_TRUE.equals(responseObj.get(IS_SUCCESS).toString())) {
@@ -311,7 +312,7 @@
        tagSb.append("]");
        log.info("body=====" + tagSb);
        String currentDate = DateUtils.format(collectTime, pattern);
        String responseStr = HttpRequest.sendPost(url + "/" + currentDate, tagSb.toString());
        String responseStr = HttpUtils.sendPost(url + "/" + currentDate, tagSb.toString());
        JSONObject responseObj = JSON.parseObject(responseStr);
        log.info("responseObj=====" + responseObj.toJSONString());
        if (STA_TRUE.equals(responseObj.get(IS_SUCCESS).toString())) {
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/channel/kio/collector/KingIOClient.java
@@ -3,7 +3,7 @@
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.iailab.module.data.common.utils.HttpRequest;
import com.iailab.framework.common.util.http.HttpUtils;
import com.iailab.module.data.channel.kio.dto.*;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -85,7 +85,7 @@
        form.put("username", username);
        form.put("password", password);
        this.logint_time = System.currentTimeMillis();
        String responseStr = HttpRequest.sendPost(this.url + "/login", JSON.toJSONString(form));
        String responseStr = HttpUtils.sendPost(this.url + "/login", JSON.toJSONString(form));
        JSONObject responseObj = JSON.parseObject(responseStr);
        if (S_CODE != Integer.parseInt(responseObj.get(R_CODE).toString())) {
            bLogin = false;
@@ -119,7 +119,7 @@
                return bConnect;
            }
            Map<String, String> map = new HashMap<>();
            String responseStr = HttpRequest.sendPost(this.url + "/heartbeat", "", this.authorization);
            String responseStr = HttpUtils.sendPost(this.url + "/heartbeat", "", this.authorization);
            JSONObject responseObj = JSON.parseObject(responseStr);
            if (S_CODE != Integer.parseInt(responseObj.get(R_CODE).toString())) {
                bConnect = false;
@@ -139,7 +139,7 @@
        Map<String, String> map = new HashMap<>();
        map.put("projectInstanceName", this.instanceName);
        map.put("TagName", tagName);
        String responseStr = HttpRequest.sendGet(this.url + "/realvalue", map, this.authorization);
        String responseStr = HttpUtils.sendGet(this.url + "/realvalue", map, this.authorization);
        JSONObject responseObj = JSON.parseObject(responseStr);
        if (S_CODE != Integer.parseInt(responseObj.get(R_CODE).toString())) {
            return null;
@@ -159,7 +159,7 @@
            objs.add(dto);
        });
        queryDto.setObjs(objs);
        String responseStr = HttpRequest.sendPost(this.url + "/batchrealvalue", JSONObject.toJSONString(queryDto), this.authorization);
        String responseStr = HttpUtils.sendPost(this.url + "/batchrealvalue", JSONObject.toJSONString(queryDto), this.authorization);
        JSONObject responseObj = JSON.parseObject(responseStr);
        if (S_CODE != Integer.parseInt(responseObj.get(R_CODE).toString())) {
            return null;
@@ -184,7 +184,7 @@
        objs.add(writeDTO);
        writeObj.setObjs(objs);
        String writeStr = JSONObject.toJSONString(writeObj);
        String responseStr = HttpRequest.sendPost(this.url + "/realvariables", writeStr, this.authorization);
        String responseStr = HttpUtils.sendPost(this.url + "/realvariables", writeStr, this.authorization);
        JSONObject responseObj = JSON.parseObject(responseStr);
        if (S_CODE != Integer.parseInt(responseObj.get(R_CODE).toString())) {
            throw new Exception(responseObj.getString(R_MSG));
@@ -200,7 +200,7 @@
        writeDTO.setV(newValue);
        objs.add(writeDTO);
        writeObj.setObjs(objs);
        String responseStr = HttpRequest.sendPost(this.url + "/realvariables", JSONObject.toJSONString(writeObj), this.authorization);
        String responseStr = HttpUtils.sendPost(this.url + "/realvariables", JSONObject.toJSONString(writeObj), this.authorization);
        JSONObject responseObj = JSON.parseObject(responseStr);
        if (S_CODE != Integer.parseInt(responseObj.get(R_CODE).toString())) {
            throw new Exception(responseObj.getString(R_MSG));
@@ -215,7 +215,7 @@
        writeDTO.setV(newValue);
        objs.add(writeDTO);
        writeObj.setObjs(objs);
        String responseStr = HttpRequest.sendPost(this.url + "/realvariables", JSONObject.toJSONString(writeObj), this.authorization);
        String responseStr = HttpUtils.sendPost(this.url + "/realvariables", JSONObject.toJSONString(writeObj), this.authorization);
        JSONObject responseObj = JSON.parseObject(responseStr);
        if (S_CODE != Integer.parseInt(responseObj.get(R_CODE).toString())) {
            throw new Exception(responseObj.getString(R_MSG));
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/common/utils/HttpRequest.java
@@ -22,223 +22,6 @@
 * @date 2021年06月03日 15:31
 */
public class HttpRequest {
    /**
     * 向指定URL发送GET方法的请求
     *
     * @param url   发送请求的URL
     * @param param 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。
     * @return URL 所代表远程资源的响应结果
     */
    public static String sendGet(String url, String param) {
        String result = "";
        BufferedReader in = null;
        try {
            String urlNameString = url + "?" + param;
            URL realUrl = new URL(urlNameString);
            // 打开和URL之间的连接
            URLConnection connection = realUrl.openConnection();
            // 设置通用的请求属性
            connection.setRequestProperty("accept", "*/*");
            connection.setRequestProperty("connection", "Keep-Alive");
            connection.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
            // 建立实际的连接
            connection.connect();
            // 获取所有响应头字段
            Map<String, List<String>> map = connection.getHeaderFields();
            // 遍历所有的响应头字段
            for (String key : map.keySet()) {
                System.out.println(key + "--->" + map.get(key));
            }
            // 定义 BufferedReader输入流来读取URL的响应
            in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
            String line;
            while ((line = in.readLine()) != null) {
                result += line;
            }
        } catch (Exception e) {
            System.out.println("发送GET请求出现异常!" + e);
            e.printStackTrace();
        }
        // 使用finally块来关闭输入流
        finally {
            try {
                if (in != null) {
                    in.close();
                }
            } catch (Exception e2) {
                e2.printStackTrace();
            }
        }
        return result;
    }
    public static String sendGet(String url, Map<String, String> params, String authorization) {
        String result = "";
        BufferedReader in = null;
        try {
            StringBuilder sb = new StringBuilder();
            sb.append(url);
            if (!CollectionUtils.isEmpty(params)) {
                sb.append("?");
                params.forEach((k, v) -> {
                    sb.append(k + "=" + v + "&");
                });
                sb.append("t=" + System.currentTimeMillis());
            }
            String urlNameString = sb.toString();
            URL realUrl = new URL(urlNameString);
            // 打开和URL之间的连接
            URLConnection connection = realUrl.openConnection();
            // 设置通用的请求属性
            connection.setRequestProperty("Authorization", authorization);
            connection.setRequestProperty("accept", "*/*");
            connection.setRequestProperty("connection", "Keep-Alive");
            connection.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
            // 建立实际的连接
            connection.connect();
            // 获取所有响应头字段
            Map<String, List<String>> map = connection.getHeaderFields();
            // 遍历所有的响应头字段
            for (String key : map.keySet()) {
                System.out.println(key + "--->" + map.get(key));
            }
            // 定义 BufferedReader输入流来读取URL的响应
            in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
            String line;
            while ((line = in.readLine()) != null) {
                result += line;
            }
        } catch (Exception e) {
            System.out.println("发送GET请求出现异常!" + e);
            e.printStackTrace();
        }
        // 使用finally块来关闭输入流
        finally {
            try {
                if (in != null) {
                    in.close();
                }
            } catch (Exception e2) {
                e2.printStackTrace();
            }
        }
        return result;
    }
    /**
     * 向指定 URL 发送POST方法的请求
     *
     * @param url
     * @param json
     * @return
     */
    public static String sendPost(String url, String json) {
        PrintWriter out = null;
        BufferedReader in = null;
        String result = "";
        try {
            URL realUrl = new URL(url);
            // 打开和URL之间的连接
            URLConnection conn = realUrl.openConnection();
            // 设置通用的请求属性
            conn.setRequestProperty("content-type", "application/json");
            conn.setRequestProperty("accept", "*/*");
            conn.setRequestProperty("connection", "Keep-Alive");
            conn.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
            // 发送POST请求必须设置如下两行
            conn.setDoOutput(true);
            conn.setDoInput(true);
            // 获取URLConnection对象对应的输出流
            out = new PrintWriter(conn.getOutputStream());
            // 发送请求参数
            out.print(json);
            // flush输出流的缓冲
            out.flush();
            // 定义BufferedReader输入流来读取URL的响应
            in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
            String line;
            while ((line = in.readLine()) != null) {
                result += line;
            }
        } catch (Exception e) {
            System.out.println("发送 POST 请求出现异常!" + e);
            e.printStackTrace();
        }
        //使用finally块来关闭输出流、输入流
        finally {
            try {
                if (out != null) {
                    out.close();
                }
                if (in != null) {
                    in.close();
                }
            } catch (IOException ex) {
                ex.printStackTrace();
            }
        }
        return result;
    }
    /**
     * 向指定 URL 发送POST方法的请求
     *
     * @param url
     * @param json
     * @param authorization
     * @return
     */
    public static String sendPost(String url, String json, String authorization) {
        PrintWriter out = null;
        BufferedReader in = null;
        String result = "";
        try {
            URL realUrl = new URL(url);
            // 打开和URL之间的连接
            URLConnection conn = realUrl.openConnection();
            // 设置通用的请求属性
            conn.setRequestProperty("Authorization", authorization);
            conn.setRequestProperty("accept", "*/*");
            conn.setRequestProperty("connection", "Keep-Alive");
            conn.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
            // 发送POST请求必须设置如下两行
            conn.setDoOutput(true);
            conn.setDoInput(true);
            // 获取URLConnection对象对应的输出流
            out = new PrintWriter(conn.getOutputStream());
            // 发送请求参数
            out.print(json);
            // flush输出流的缓冲
            out.flush();
            // 定义BufferedReader输入流来读取URL的响应
            in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
            String line;
            while ((line = in.readLine()) != null) {
                result += line;
            }
        } catch (Exception e) {
            System.out.println("发送 POST 请求出现异常!" + e);
            e.printStackTrace();
        }
        //使用finally块来关闭输出流、输入流
        finally {
            try {
                if (out != null) {
                    out.close();
                }
                if (in != null) {
                    in.close();
                }
            } catch (IOException ex) {
                ex.printStackTrace();
            }
        }
        return result;
    }
    /**
     *