| | |
| | | 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; |
| | |
| | | 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 { |