package com.fzzy.push.whhpjl; import com.alibaba.fastjson.JSON; import com.fzzy.push.whhpjl.dto.WhjlPullReqDto; import com.fzzy.push.whhpjl.dto.WhjlPullRespDto; import com.fzzy.push.whhpjl.dto.WhjlReqDto; import com.fzzy.push.whhpjl.dto.WhjlRespDto; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; import java.io.*; import java.net.HttpURLConnection; import java.net.URL; /** * 武汉军粮省平台-上传数据服务类 * * @author czt * @date 2023/10/23 */ @Slf4j @Component public class Whjl2023HttpClientUtil { /** * 数据上报post请求 * * @param url * @param reqData * @return */ public WhjlRespDto postPushData(String url, WhjlReqDto reqData) throws Exception { log.info("---------接口请求地址:" + url + "----------参数:" + JSON.toJSONString(reqData) + "---------"); BufferedReader in = null; URL urls = new URL(url); HttpURLConnection connection = null; OutputStream outputStream = null; String rs = ""; WhjlRespDto responseDto; try { connection = (HttpURLConnection) urls.openConnection(); connection.setRequestProperty("Content-Type", "application/json;charset=UTF-8"); 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"); outputStream = connection.getOutputStream(); outputStream.write(JSON.toJSONString(reqData).getBytes("UTF-8")); 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 WhjlRespDto(99, e.getMessage()); } log.info("---------接口返回:" + rs + "---------"); responseDto = JSON.parseObject(rs, WhjlRespDto.class); if (responseDto == null) return new WhjlRespDto(99, "接口请求发生未知错误"); return responseDto; } finally { try { outputStream.close(); if (in != null) { in.close(); } } catch (Exception e) { } outputStream = null; if (connection != null) connection.disconnect(); connection = null; } } /** * 数据上报post请求 * * @param url * @param reqData * @return */ public WhjlPullRespDto postPullData(String url, WhjlPullReqDto reqData) throws Exception { log.info("---------接口请求地址:" + url + "----------参数:" + JSON.toJSONString(reqData) + "---------"); BufferedReader in = null; URL urls = new URL(url); HttpURLConnection connection = null; OutputStream outputStream = null; String rs = ""; WhjlPullRespDto responseDto; try { connection = (HttpURLConnection) urls.openConnection(); connection.setRequestProperty("Content-Type", "application/json;charset=UTF-8"); 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"); outputStream = connection.getOutputStream(); outputStream.write(JSON.toJSONString(reqData).getBytes("UTF-8")); 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) { log.error(e.getMessage(), e); rs = null; return new WhjlPullRespDto(99, null); } log.info("---------接口返回:" + rs + "---------"); responseDto = JSON.parseObject(rs, WhjlPullRespDto.class); if (responseDto == null) { return new WhjlPullRespDto(99, "接口请求发生未知错误"); } return responseDto; } finally { try { outputStream.close(); if (in != null) { in.close(); } } catch (Exception e) { } outputStream = null; if (connection != null) connection.disconnect(); connection = null; } } }