路泰机电科技体检——数据平台后端
zhaowenxuan
2024-12-30 dd45098812d61999f588bb34b483d236470a1067
src/main/java/com/example/utils/HttpClientUtils.java
@@ -185,28 +185,18 @@
        OutputStreamWriter writer = null;
        BufferedReader reader = null;
        StringBuilder response = new StringBuilder();
        try {
            // 创建 URL 对象
            log.info("请求地址 ->{}",httpUrl);
            URL url = new URL(httpUrl);
            // 打开连接
            connection = (HttpURLConnection) url.openConnection();
            // 设置请求方法为 POST
            connection.setRequestMethod("POST");
            // 设置请求头 Content-Type 为 application/x-www-form-urlencoded
            connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
            // 如果需要 Authorization Header
            if (authorization != null && !authorization.isEmpty()) {
                connection.setRequestProperty("Authorization", authorization);
            }
            // 设置允许输出
            connection.setDoOutput(true);
            // 构建表单数据
            StringBuilder postData = new StringBuilder();
            log.info("入参 ->{}", JSONUtil.toJsonStr(maps));
            for (Map.Entry<String, Object> entry : maps.entrySet()) {
                if (postData.length() > 0) {
                    postData.append("&");
@@ -215,23 +205,19 @@
                        .append("=")
                        .append(URLEncoder.encode(entry.getValue().toString(), "UTF-8"));
            }
            // 获取输出流并写入表单数据
            writer = new OutputStreamWriter(connection.getOutputStream());
            writer.write(postData.toString());
            writer.flush();
            // 获取响应
            reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
            String line;
            while ((line = reader.readLine()) != null) {
                response.append(line);
            }
            log.info("返回 ->{}",response);
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        } finally {
            // 关闭流
            try {
                if (writer != null) writer.close();
                if (reader != null) reader.close();
@@ -250,60 +236,39 @@
        DataOutputStream outStream = null;
        BufferedReader reader = null;
        StringBuilder response = new StringBuilder();
        // 边界字符串
        String boundary = "----WebKitFormBoundary" + UUID.randomUUID().toString().replaceAll("-", "");
        String CRLF = "\r\n"; // 换行符
        String CRLF = "\r\n";
        try {
            // 创建 URL 对象
            log.info("请求地址 ->{}",httpUrl);
            URL url = new URL(httpUrl);
            // 打开连接
            connection = (HttpURLConnection) url.openConnection();
            // 设置请求方法为 POST
            connection.setRequestMethod("POST");
            // 设置请求头 Content-Type 为 multipart/form-data
            connection.setRequestProperty("Content-Type", "multipart/form-data; boundary=" + boundary);
            // 如果需要 Authorization Header
            if (authorization != null && !authorization.isEmpty()) {
                connection.setRequestProperty("Authorization", authorization);
            }
            // 设置允许输出
            connection.setDoOutput(true);
            // 获取输出流
            log.info("入参 ->{}",maps);
            outStream = new DataOutputStream(connection.getOutputStream());
            // 遍历传入的表单数据,并按照 multipart/form-data 格式写入
            for (Map.Entry<String, Object> entry : maps.entrySet()) {
                outStream.writeBytes("--" + boundary + CRLF);
                outStream.writeBytes("Content-Disposition: form-data; name=\"" + entry.getKey() + "\"" + CRLF);
                outStream.writeBytes("Content-Type: text/plain; charset=UTF-8" + CRLF);
                outStream.writeBytes(CRLF);  // 这里是分隔符,空一行
                outStream.writeBytes(CRLF);
                outStream.writeBytes(entry.getValue().toString() + CRLF);
            }
            // 结束 multipart/form-data 发送数据部分
            outStream.writeBytes("--" + boundary + "--" + CRLF);
            // 刷新输出流
            outStream.flush();
            // 获取响应
            reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
            String line;
            while ((line = reader.readLine()) != null) {
                response.append(line);
            }
            log.info("返回 ->{}",response);
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        } finally {
            // 关闭流
            try {
                if (outStream != null) outStream.close();
                if (reader != null) reader.close();