发送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
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请求并返回字符串
/**
* 发送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, Map
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 + "请求地址:" + 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; }
