发送http请求,并返回字节数组 /** * 发送Wap请求并返回字节数组(获取图片) * * @param businessUrl 业务链接 * @return wap返回数据 */ public byte[] executeGetImage(String businessUrl, Map params) { logger.debug(NA
/** * 发送Wap请求并返回字节数组(获取图片) * * @param businessUrl 业务链接 * @return wap返回数据 */ public byte[] executeGetImage(String businessUrl, Map发送Wap请求并返回字符串params) { logger.debug(NAME + "被调用"); //通信 CloseableHttpClient httpClient = HttpClients.createDefault(); CloseableHttpResponse response = null; InputStream inputStream = null; try { HttpPost httpPost = new HttpPost(businessUrl); //添加参数 if (!EmptyUtils.isEmpty(params)) { List paramsList = new ArrayList<>(); for (String key : params.keySet()) { paramsList.add(new BasicNameValuePair(key, params.get(key))); } httpPost.setEntity(new UrlEncodedFormEntity(paramsList, "UTF-8")); } logger.debug(NAME + "请求地址:" + httpUrl); //增加请求配置 httpPost.setConfig(buildRequestConfig()); //执行Wap请求 response = httpClient.execute(httpPost); //读取数据 inputStream = response.getEntity().getContent(); byte[] bytes = IOUtils.readFully(inputStream); logger.debug(NAME + "通信成功"); return bytes; } catch (SocketTimeoutException | ConnectTimeoutException | ConnectException connectExp) { logger.error(NAME + "通信过程中发生超时异常:" + connectExp.getMessage(), connectExp); } catch (IOException ioe) { logger.error(NAME + "通信过程中异常", ioe); } catch (RuntimeException re) { logger.error(NAME + "通信发生运行时异常", re); } catch (Exception e) { logger.error(NAME + "通信时发生普通异常:" + e.getMessage(), e); } finally { CloseableUtil.close(inputStream, response, httpClient); } return null; } /** * 读取配置文件中的对Http通信的配置 * * @return RequestConfig配置对象 */ private RequestConfig buildRequestConfig() { String socketTimeoutConfig = ProjectConfig.getValue("http_socket_timeout"); String connectTimeoutConfig = ProjectConfig.getValue("http_connect_timeout"); requestConfig = RequestConfig.custom().setSocketTimeout(Integer.parseInt(socketTimeoutConfig)).setConnectTimeout(Integer.parseInt(connectTimeoutConfig)).build(); return requestConfig; }
/** * 发送Wap请求并接收返回值 * * @param businessUrl 业务链接 * @param params 请求参数 * @return wap返回数据 */ private Logger logger = Logger.getLogger(WapExecutor.class);//log4j private static final String NAME = "浙江智慧网络医院调用执行器:";//执行器名称 private RequestConfig requestConfig;//请求配置 private Gson gson = new Gson();//Google gson public String execute(String businessUrl, Mapparams) { logger.debug(NAME + "被调用"); //通信 CloseableHttpClient httpClient = HttpClients.createDefault(); CloseableHttpResponse response = null; InputStream inputStream = null; try { HttpPost httpPost = new HttpPost(businessUrl); //添加参数 if (!EmptyUtils.isEmpty(params)) { List paramsList = new ArrayList<>(); for (String key : params.keySet()) { paramsList.add(new BasicNameValuePair(key, params.get(key))); } httpPost.setEntity(new UrlEncodedFormEntity(paramsList, "UTF-8")); } logger.debug(NAME + "请求地址:" + businessUrl); //增加请求配置 httpPost.setConfig(buildRequestConfig()); //执行Wap请求 response = httpClient.execute(httpPost); //读取数据 inputStream = response.getEntity().getContent(); byte[] bytes = IOUtils.readFully(inputStream); //解码并转为json对象 String encodeStr = new String(bytes, "UTF-8"); String json = URLDecoder.decode(encodeStr, "UTF-8"); logger.debug(NAME + "通信成功"); return json; } catch (SocketTimeoutException | ConnectTimeoutException | ConnectException connectExp) { logger.error(NAME + "通信过程中发生超时异常:" + connectExp.getMessage(), connectExp); } catch (IOException ioe) { logger.error(NAME + "通信过程中异常", ioe); } catch (RuntimeException re) { logger.error(NAME + "通信发生运行时异常", re); } catch (Exception e) { logger.error(NAME + "通信时发生普通异常:" + e.getMessage(), e); } finally { CloseableUtil.close(inputStream, response, httpClient); } return ""; } /** * 读取配置文件中的对Http通信的配置 * * @return RequestConfig配置对象 */ private RequestConfig buildRequestConfig() { String socketTimeoutConfig = ProjectConfig.getValue("http_socket_timeout"); String connectTimeoutConfig = ProjectConfig.getValue("http_connect_timeout"); requestConfig = RequestConfig.custom().setSocketTimeout(Integer.parseInt(socketTimeoutConfig)).setConnectTimeout(Integer.parseInt(connectTimeoutConfig)).build(); return requestConfig; }