南昌市物联网技防平台-后台
Administrator
2021-03-21 48707050fa3f5a9870e6af09adb66ea8f8a8c3e8
安检图片接口
4 files modified
168 ■■■■■ changed files
blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/parcel/controller/ParcelController.java 15 ●●●●● patch | view | raw | blame | history
blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/parcel/service/ParcelService.java 8 ●●●●● patch | view | raw | blame | history
blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/parcel/service/impl/ParcelServiceImpl.java 22 ●●●●● patch | view | raw | blame | history
blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/parcel/util/HttpClientUtils.java 123 ●●●●● patch | view | raw | blame | history
blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/parcel/controller/ParcelController.java
@@ -50,5 +50,20 @@
        return R.data(parcelService.getParcelStatis(conditionVo));
    }
    /**
     * 获取图片地址
     * @param imgUrl  图片url
     * @param response
     * @return
     */
    @GetMapping("/getParcelPic")
    public R getParcelPic(String imgUrl,HttpServletResponse response){
        response.setHeader("Access-Control-Allow-Origin", "*");
        response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE");
        response.setHeader("Access-Control-Allow-Credentials","true");
        return R.data(parcelService.getParcelPic(imgUrl));
    }
}
blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/parcel/service/ParcelService.java
@@ -35,4 +35,12 @@
     * @return
     */
    Map<String, Object> selectParcelData();
    /**
     * 获取图片地址
     * @param imgUrl 图片Url
     * @return
     */
    Map<String, String> getParcelPic(String imgUrl);
}
blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/parcel/service/impl/ParcelServiceImpl.java
@@ -31,6 +31,9 @@
    @Value("${PARCEL_URL}")
    private String PARCEL_URL;
    @Value("${PARCEL_PICTURE_URL}")
    private String PARCEL_PICTURE_URL;
    /**
@@ -275,4 +278,23 @@
        }
        return list;
    }
    /**
     * 获取图片地址
     * @param imgUrl 图片Url
     * @return
     */
    @Override
    public Map<String, String> getParcelPic(String imgUrl) {
        //截取图片imgKey信息
        String[] imgKeys = imgUrl.split("=", imgUrl.length());
        String imgKey = imgKeys[1];
        //封装成map对象
        HashMap<String, String> map = new HashMap<>();
        map.put("imgKey",imgKey);
        //执行http远程调用
        String s = HttpClientUtils.doGetHeaderPictureBase64(PARCEL_PICTURE_URL, PARCEL_KEY, PARCEL_SECRET, map);
        map.put("imgBase64",s);
        return map;
    }
}
blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/parcel/util/HttpClientUtils.java
@@ -35,6 +35,7 @@
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.ssl.SSLContextBuilder;
import org.apache.http.util.EntityUtils;
import sun.misc.BASE64Encoder;
import javax.net.ssl.SSLContext;
@@ -67,16 +68,13 @@
            HttpGet get = new HttpGet(builder.build());
            response = httpclient.execute(get);
            System.out.println(response.getStatusLine());
            if (200 == response.getStatusLine().getStatusCode()) {
                HttpEntity entity = response.getEntity();
                System.out.println(entity.toString());
                resultString = EntityUtils.toString(entity, "utf-8");
                System.out.println(resultString.toString());
            }
        } catch (Exception e) {
@@ -102,6 +100,125 @@
        return resultString;
    }
    /**
     * 执行有参GET请求,带请求头
     *
     * @param url 请求url
     * @param params 参数
     * @param key 请求头Key
     * @param secretKey 秘钥
     * @return
     */
    public static String doGetHeader(String url, String key, String secretKey,Map<String, String> params) {
        //获取httpclient客户端
        CloseableHttpClient httpclient = HttpClients.createDefault();
        String resultString = "";
        CloseableHttpResponse response = null;
        try {
            URIBuilder builder = new URIBuilder(url);
            if (null != params) {
                for (String keys : params.keySet()) {
                    builder.addParameter(keys,params.get(keys));
                    //builder.setParameter(keys, params.get(keys));
                }
            }
            HttpGet httpGet = new HttpGet(builder.build());
            //设置请求头
            httpGet.addHeader(key,secretKey);
            // 传输的类型
            httpGet.addHeader("Content-Type", "application/x-www-form-urlencoded");
            //执行Http请求调用
            response = httpclient.execute(httpGet);
            //判断是否请求成功返回
            if (200 == response.getStatusLine().getStatusCode()) {
                HttpEntity entity = response.getEntity();
                resultString = EntityUtils.toString(entity, "utf-8");
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            if (null != response) {
                try {
                    response.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            if (null != httpclient) {
                try {
                    httpclient.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
        return resultString;
    }
    /**
     * 执行有参GET请求,带请求头,接收图片流
     *
     * @param url 请求url
     * @param params 参数
     * @param key 请求头Key
     * @param secretKey 秘钥
     * @return
     */
    public static String doGetHeaderPictureBase64(String url, String key, String secretKey,Map<String, String> params) {
        //获取httpclient客户端
        CloseableHttpClient httpclient = HttpClients.createDefault();
        String resultString = "";
        CloseableHttpResponse response = null;
        try {
            URIBuilder builder = new URIBuilder(url);
            if (null != params) {
                for (String keys : params.keySet()) {
                    builder.addParameter(keys,params.get(keys));
                }
            }
            HttpGet httpGet = new HttpGet(builder.build());
            //设置请求头
            httpGet.addHeader(key,secretKey);
            // 传输的类型
            httpGet.addHeader("Content-Type", "application/x-www-form-urlencoded");
            //执行Http请求调用
            response = httpclient.execute(httpGet);
            // 将返回的图片或者文件转化成字节数组的形式
            byte[] data = EntityUtils.toByteArray(response.getEntity());
            BASE64Encoder encoder = new BASE64Encoder();
            //String imageBase64 = "data:image/png;base64," + encoder.encodeBuffer(data).trim();
            return encoder.encodeBuffer(data).trim().replaceAll("\n", "").replaceAll("\r", "").replaceAll(" ", "");//删除 \r\n
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            if (null != response) {
                try {
                    response.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            if (null != httpclient) {
                try {
                    httpclient.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
        return resultString;
    }
    /**
     * 执行无参GET请求
     *