当前位置 : 主页 > 编程语言 > java >

网络工具类

来源:互联网 收集:自由互联 发布时间:2021-06-28
发送http请求,并返回字节数组 /** * 发送Wap请求并返回字节数组(获取图片) * * @param businessUrl 业务链接 * @return wap返回数据 */ public byte[] executeGetImage(String businessUrl, Map params) { logger.debug(NA
发送http请求,并返回字节数组
/**
     * 发送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; }
  
 
网友评论