jiazx0107@163.com
2023-11-07 1ae45581a6024db5187c64621d01729e0d1dead5
src/main/java/com/fzzy/push/gb2022/HttpClientUtil.java
@@ -3,7 +3,6 @@
import com.alibaba.fastjson.JSON;
import com.fzzy.api.dto.ResponseDto;
import com.fzzy.gateway.data.GatewayResponse;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils;
@@ -138,100 +137,6 @@
            responseDto = JSON.parseObject(rs, ResponseDto.class);
            if (responseDto == null) return new ResponseDto(99, "接口请求发生未知错误");
            responseDto.setJSESSIONID(JSESSIONID);
            return responseDto;
        } finally {
            try {
                outputStream.close();
                if (in != null) {
                    in.close();
                }
            } catch (Exception e) {
            }
            outputStream = null;
            if (connection != null)
                connection.disconnect();
            connection = null;
        }
    }
    public static GatewayResponse pushGateway(String url, Map<String, Object> map) throws Exception {
        log.info("---------接口请求地址:" + url + "----------参数:" + JSON.toJSONString(map) + "---------");
        BufferedReader in = null;
        URL urls = new URL(url);
        HttpURLConnection connection = null;
        OutputStream outputStream = null;
        String rs = "";
        GatewayResponse responseDto;
        try {
            connection = (HttpURLConnection) urls.openConnection();
            connection.setRequestProperty("Content-Type", "multipart/form-data; boundary=----footfoodapplicationrequestnetwork");
            connection.setDoOutput(true);
            connection.setDoInput(true);
            connection.setRequestProperty("Accept-Language", "zh-CN,zh;q=0.8");
            connection.setRequestProperty("Accept", "*/*");
            connection.setRequestProperty("Range", "bytes=" + "");
            connection.setConnectTimeout(20000);
            connection.setReadTimeout(30000);
            connection.setRequestMethod("POST");
            StringBuffer buffer = new StringBuffer();
            outputStream = connection.getOutputStream();
            Set<Map.Entry<String, Object>> entries = map.entrySet();
            for (Map.Entry<String, Object> entry : entries) {
                // 每次都清空buffer,避免写入上次的数据
                buffer.delete(0, buffer.length());
                buffer.append("------footfoodapplicationrequestnetwork\r\n");
                Object value = entry.getValue();
                if (!(value instanceof File)) {
                    buffer.append("Content-Disposition: form-data; name=\"");
                    buffer.append(entry.getKey());
                    buffer.append("\"\r\n\r\n");
                    buffer.append(entry.getValue());
                    buffer.append("\r\n");
                    outputStream.write(buffer.toString().getBytes());
                } else {
                    buffer.append("Content-Disposition: form-data; name=\"" + entry.getKey() + "\"; filename=\"" + ((File) entry.getValue()).getName() + "\"\r\n");
                    buffer.append("Content-Type: " + "zip" + "\r\n\r\n");
                    outputStream.write(buffer.toString().getBytes());
                    File file = (File) entry.getValue();
                    DataInputStream ins = new DataInputStream(new FileInputStream(file));
                    int bytes = 0;
                    byte[] bufferOut = new byte[1024];
                    while ((bytes = ins.read(bufferOut)) != -1) {
                        outputStream.write(bufferOut, 0, bytes);
                    }
                    // 文件流后面添加换行,否则文件后面的一个参数会丢失
                    outputStream.write("\r\n".getBytes());
                }
            }
            if (entries != null && map.size() > 0) {
                buffer.delete(0, buffer.length());
                buffer.append("------footfoodapplicationrequestnetwork--\r\n");
            }
            outputStream.write(buffer.toString().getBytes());
            try {
                connection.connect();
                if (connection.getResponseCode() == 200) {
                    in = new BufferedReader(new InputStreamReader(connection.getInputStream(), "UTF-8"));
                    String line = "";
                    while ((line = in.readLine()) != null) {
                        rs += line;
                    }
                } else {
                    log.error("http状态:" + connection.getResponseCode());
                    log.error("http消息:" + connection.getResponseMessage());
                }
            } catch (Exception e) {
                System.out.println("发生异常");
                log.error(e.getMessage(), e);
                rs = null;
                return new GatewayResponse(99, e.getMessage());
            }
            log.info("---------接口返回:" + rs + "---------");
            responseDto = JSON.parseObject(rs, GatewayResponse.class);
            if (responseDto == null) return new GatewayResponse(99, "接口请求发生未知错误");
            return responseDto;
        } finally {
            try {