createExcelExporter(ExportCollection exportCollection, ExcelExportType excelExportType, SessionProvider sessionProvider) {
+ Set providerSet = ExtraReportClassManager.getInstance().getArray("ExcelExportAppProvider");
+ Iterator it = providerSet.iterator();
+
+ ExcelExportAppProvider provider;
+ do {
+ if (!it.hasNext()) {
+ FineBook book = (FineBook) sessionProvider.getOriginalObject();
+ Object exporter;
+ if ("simple".equalsIgnoreCase(excelExportType.getExportType())) {
+ exporter = new EncodeExcelExporter(ReportUtils.getPaperSettingListFromWorkBook(book),current,reportId);
+ exportCollection.setExporter((AppExporter) exporter);
+ exportCollection.setRecordType(DeclareRecordType.EXPORT_TYPE_EXCEL_ORIGINAL);
+ } else if ("sheet".equalsIgnoreCase(excelExportType.getExportType())) {
+ exporter = new EncodePageToSheetExcelExporter(ReportUtils.getPaperSettingListFromWorkBook(book),current,reportId);
+ exportCollection.setExporter((AppExporter) exporter);
+ exportCollection.setRecordType(DeclareRecordType.EXPORT_TYPE_EXCEL_PAGESHEET);
+ } else {
+ exporter = new EncodePageExcelExporter(ReportUtils.getPaperSettingListFromWorkBook(book),current,reportId);
+ exportCollection.setExporter((AppExporter) exporter);
+ exportCollection.setRecordType(DeclareRecordType.EXPORT_TYPE_EXCEL_PAGE);
+ }
+
+ return (AppExporter) exporter;
+ }
+
+ provider = (ExcelExportAppProvider) it.next();
+ } while (!provider.exportType().equalsIgnoreCase(excelExportType.getExportType()));
+
+ return provider.newAppExporter(exportCollection, excelExportType, sessionProvider);
+ }
+
+ @Override
+ public ExportCollection createExcelExportCollection(HttpServletRequest req, HttpServletResponse res, SessionProvider provider, String fileName) {
+ ExcelExportType exportType = this.createExcelExportType(req, provider);
+ if ("ldpage".equalsIgnoreCase(exportType.getExportType())) {
+ Set set = ExtraReportClassManager.getInstance().getArray("ExcelExportAppProvider");
+ Iterator it =set.iterator();
+
+ while(it.hasNext()) {
+ ExcelExportAppProvider excelExportAppProvider = (ExcelExportAppProvider)it.next();
+ if (excelExportAppProvider.exportType().equalsIgnoreCase(exportType.getExportType())) {
+ ExportCollection collection = excelExportAppProvider.newLargeDataExportCollection(req, res, provider, fileName, exportType);
+ if (collection != null) {
+ return collection;
+ }
+ }
+ }
+ return this.createLargeDataExportCollection(req, res, provider, fileName, exportType);
+ } else {
+ if (res != null) {
+ if (ExcelUtils.checkThirdJarSupportPOI() && !WebUtils.getHTTPRequestBoolParameter(req, "isExcel2003")) {
+ PrintUtils.setExcel2007Content(res, fileName);
+ } else {
+ PrintUtils.setExcelContent(res, fileName);
+ }
+
+ }
+ this.current = PrintUtils.getUserById(req);
+ this.reportId = PrintUtils.getReportId(req);
+ ExportCollection exportCollection = ExportCollection.create();
+ AppExporter exporter = this.createExcelExporter(exportCollection, exportType, provider);
+ exporter.setVersion(WebUtils.getHTTPRequestBoolParameter(req, "isExcel2003"));
+ return exportCollection;
+ }
+ }
+ @Override
+ public ExportCollection createLargeDataExportCollection(HttpServletRequest req, HttpServletResponse res, SessionProvider sessionProvider, String filename, ExcelExportType excelExportType) {
+ Browser browser = Browser.resolve(req);
+ if (res != null) {
+ ExportUtils.setZipContext(res, filename, browser.shouldSetContentTypeOnZipDownload());
+ }
+
+ FineBook book = sessionProvider.getOriginalObject();
+ LargeDataPageExcelExporter largeDataPageExcelExporter = new EncodeLargeDataPageExcelExporter(ReportUtils.getPaperSettingListFromWorkBook(book), excelExportType.isPage(),filename);
+ ExportCollection exportCollection = ExportCollection.create();
+ exportCollection.setExporter(largeDataPageExcelExporter);
+ exportCollection.setRecordType(ReportDeclareRecordType.EXPORT_TYPE_EXCEL_LARGE);
+ return exportCollection;
+ }
+}
diff --git a/src/main/java/com/fr/plugin/xxxx/report/ecode/operate/EncodeImageOperate.java b/src/main/java/com/fr/plugin/xxxx/report/ecode/operate/EncodeImageOperate.java
new file mode 100644
index 0000000..43a9077
--- /dev/null
+++ b/src/main/java/com/fr/plugin/xxxx/report/ecode/operate/EncodeImageOperate.java
@@ -0,0 +1,51 @@
+package com.fr.plugin.xxxx.report.ecode.operate;
+
+import com.fr.general.DeclareRecordType;
+import com.fr.io.collection.ExportCollection;
+import com.fr.io.exporter.ImageExporter;
+import com.fr.plugin.xxxx.report.ecode.export.EncodeImageExporter;
+import com.fr.plugin.xxxx.report.ecode.utils.PrintUtils;
+import com.fr.web.core.ReportSessionIDInfor;
+import com.fr.web.core.reserve.DefaultOperate;
+import com.fr.web.utils.WebUtils;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+/**
+ * @author fr.open
+ * @Date 2021/08/01
+ */
+public class EncodeImageOperate extends DefaultOperate {
+ @Override
+ public void setContent(HttpServletRequest req, HttpServletResponse res, String fileName, boolean var4) {
+ DeclareRecordType type = this.getImageExportType(req);
+ PrintUtils.setImageContext(res, fileName, type.getTypeString());
+ }
+ @Override
+ public ExportCollection createCollection(HttpServletRequest req, HttpServletResponse res, ReportSessionIDInfor var3, String fileName) {
+ ExportCollection exportCollection = ExportCollection.create();
+ DeclareRecordType type = this.getImageExportType(req);
+ ImageExporter exporter = new EncodeImageExporter(type.getTypeString(),PrintUtils.getUserById(req),PrintUtils.getReportId(req));
+ setContent(req,res,fileName,false);
+ exportCollection.setExporter(exporter);
+ exportCollection.setRecordType(type);
+ return exportCollection;
+ }
+
+ private DeclareRecordType getImageExportType(HttpServletRequest var1) {
+ DeclareRecordType[] var2 = new DeclareRecordType[]{DeclareRecordType.EXPORT_TYPE_IMAGE_PNG, DeclareRecordType.EXPORT_TYPE_IMAGE_JPG, DeclareRecordType.EXPORT_TYPE_IMAGE_GIF, DeclareRecordType.EXPORT_TYPE_IMAGE_BMP, DeclareRecordType.EXPORT_TYPE_IMAGE_WBMP};
+ String var3 = WebUtils.getHTTPRequestParameter(var1, "extype");
+ int var4 = 0;
+ if (var3 != null) {
+ for(int var5 = 0; var5 < var2.length; ++var5) {
+ if (var3.equalsIgnoreCase(var2[var5].getTypeString())) {
+ var4 = var5;
+ break;
+ }
+ }
+ }
+
+ return var2[var4];
+ }
+}
diff --git a/src/main/java/com/fr/plugin/xxxx/report/ecode/operate/EncodePDFOperate.java b/src/main/java/com/fr/plugin/xxxx/report/ecode/operate/EncodePDFOperate.java
new file mode 100644
index 0000000..5780398
--- /dev/null
+++ b/src/main/java/com/fr/plugin/xxxx/report/ecode/operate/EncodePDFOperate.java
@@ -0,0 +1,47 @@
+package com.fr.plugin.xxxx.report.ecode.operate;
+
+import com.fr.general.DeclareRecordType;
+import com.fr.io.collection.ExportCollection;
+import com.fr.plugin.xxxx.report.ecode.export.EncodePDFExporter;
+import com.fr.plugin.xxxx.report.ecode.utils.PrintUtils;
+import com.fr.web.core.ReportSessionIDInfor;
+import com.fr.web.core.reserve.DefaultOperate;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+/**
+ * @author fr.open
+ * @Date 2021/08/01
+ */
+public class EncodePDFOperate extends DefaultOperate {
+ /**
+ * 返回一个带有EncodePDFExporter导出的ExportCollection
+ * @param req
+ * @param res
+ * @param reportSessionIDInfor
+ * @param fileName
+ * @return
+ */
+ @Override
+ public ExportCollection createCollection(HttpServletRequest req, HttpServletResponse res, ReportSessionIDInfor reportSessionIDInfor, String fileName) {
+ ExportCollection exportCollection = ExportCollection.create();
+ exportCollection.setExporter(new EncodePDFExporter(PrintUtils.getUserById(req),PrintUtils.getReportId(req)));
+ exportCollection.setRecordType(DeclareRecordType.EXPORT_TYPE_PDF);
+ this.setContent(req, res, fileName, false);
+ return exportCollection;
+ }
+
+ /**
+ * 设置响应的类型,设置文件名等
+ * @param req
+ * @param res
+ * @param fileName
+ * @param isEmbed
+ */
+ @Override
+ public void setContent(HttpServletRequest req, HttpServletResponse res, String fileName, boolean isEmbed) {
+ //直接调用工具方法
+ PrintUtils.setPDFContent(res, fileName, isEmbed);
+ }
+}
diff --git a/src/main/java/com/fr/plugin/xxxx/report/ecode/operate/EncodeWordOperate.java b/src/main/java/com/fr/plugin/xxxx/report/ecode/operate/EncodeWordOperate.java
new file mode 100644
index 0000000..0d761f7
--- /dev/null
+++ b/src/main/java/com/fr/plugin/xxxx/report/ecode/operate/EncodeWordOperate.java
@@ -0,0 +1,31 @@
+package com.fr.plugin.xxxx.report.ecode.operate;
+
+import com.fr.general.DeclareRecordType;
+import com.fr.io.collection.ExportCollection;
+import com.fr.plugin.xxxx.report.ecode.export.EncodeWordEcporter;
+import com.fr.plugin.xxxx.report.ecode.utils.PrintUtils;
+import com.fr.web.core.ReportSessionIDInfor;
+import com.fr.web.core.reserve.DefaultOperate;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+/**
+ * @author fr.open
+ * @Date 2021/08/01
+ */
+public class EncodeWordOperate extends DefaultOperate {
+ @Override
+ public ExportCollection createCollection(HttpServletRequest req, HttpServletResponse res, ReportSessionIDInfor reportSessionIDInfor, String fileName) {
+ ExportCollection exportCollection = ExportCollection.create();
+ this.setContent(req,res,fileName,false);
+ exportCollection.setExporter(new EncodeWordEcporter(PrintUtils.getUserById(req),PrintUtils.getReportId(req)));
+ exportCollection.setRecordType(DeclareRecordType.EXPORT_TYPE_WORD);
+ return exportCollection;
+ }
+
+ @Override
+ public void setContent(HttpServletRequest req, HttpServletResponse res, String fileName, boolean b) {
+ PrintUtils.setWordConetent(res, fileName);
+ }
+}
diff --git a/src/main/java/com/fr/plugin/xxxx/report/ecode/util/Base64Util.java b/src/main/java/com/fr/plugin/xxxx/report/ecode/util/Base64Util.java
new file mode 100644
index 0000000..fdd7cb6
--- /dev/null
+++ b/src/main/java/com/fr/plugin/xxxx/report/ecode/util/Base64Util.java
@@ -0,0 +1,54 @@
+package com.fr.plugin.xxxx.report.ecode.util;
+
+import com.fr.log.FineLoggerFactory;
+import org.apache.commons.codec.binary.Base64;
+import sun.misc.BASE64Decoder;
+
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+
+/**
+ * @author fr.open
+ * @date 2021/8/1
+ */
+public class Base64Util {
+
+ public static String inputStream2Base(InputStream in) {
+ byte[] data = null;
+ try {
+ ByteArrayOutputStream swapStream = new ByteArrayOutputStream();
+ byte[] buff = new byte[100];
+ int rc = 0;
+ while ((rc = in.read(buff, 0, 100)) > 0) {
+ swapStream.write(buff, 0, rc);
+ }
+ data = swapStream.toByteArray();
+ } catch (IOException e) {
+ FineLoggerFactory.getLogger().error(e.getMessage(),e);
+ } finally {
+ if (in != null) {
+ try {
+ in.close();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+ }
+ return new String(Base64.encodeBase64(data));
+ }
+
+ public static InputStream Base2InputStream(String base) {
+ byte[] bytes = new byte[0];
+ try {
+ bytes = new BASE64Decoder().decodeBuffer(base.trim());
+ ByteArrayInputStream inputStream = new ByteArrayInputStream(bytes);
+ return inputStream;
+ } catch (IOException e) {
+ FineLoggerFactory.getLogger().error(e.getMessage(),e);
+ }
+ //转化为输入流
+ return null;
+ }
+}
diff --git a/src/main/java/com/fr/plugin/xxxx/report/ecode/util/DecodeUtil.java b/src/main/java/com/fr/plugin/xxxx/report/ecode/util/DecodeUtil.java
new file mode 100644
index 0000000..f61afb0
--- /dev/null
+++ b/src/main/java/com/fr/plugin/xxxx/report/ecode/util/DecodeUtil.java
@@ -0,0 +1,74 @@
+package com.fr.plugin.xxxx.report.ecode.util;
+
+import com.fr.log.FineLoggerFactory;
+
+import java.io.*;
+
+/**
+ * @author fr.open
+ * @date 2019/6/17
+ */
+public class DecodeUtil {
+ public static InputStream decryptFileByFh(InputStream encode, String fileName) {
+ FineLoggerFactory.getLogger().info("start decode");
+ String str = Base64Util.inputStream2Base(encode);
+ FineLoggerFactory.getLogger().info("file Transcoding success");
+ String base = HttpUtil.decode(str, fileName);
+ FineLoggerFactory.getLogger().info("file decode finish,base is:{}", base);
+ if (base == null) {
+ return null;
+ }
+ return Base64Util.Base2InputStream(base);
+ }
+
+ public static InputStream encryptFileByFh(InputStream data, String fileName) {
+ FineLoggerFactory.getLogger().info("start encode");
+ String str = Base64Util.inputStream2Base(data);
+ FineLoggerFactory.getLogger().info("file Transcoding success");
+ String base = HttpUtil.encode(str, fileName);
+ FineLoggerFactory.getLogger().info("file encode finish,base is:{}", base);
+ if (base == null) {
+ return null;
+ }
+ return Base64Util.Base2InputStream(base);
+ }
+
+ public static String getTxt(){
+ File file = new File("/Users/hujian/Desktop/111.txt");
+ try (FileReader reader = new FileReader(file);
+ BufferedReader br = new BufferedReader(reader)){
+
+ StringBuilder sb = new StringBuilder();
+ String s = "";
+ while((s = br.readLine()) != null){
+ sb.append(s);
+ }
+ br.close();
+ return sb.toString();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ return "";
+
+ }
+/*
+ public static void main(String[] args) {
+
+ //System.out.println(sb.toString());
+ File newFile = new File("/Users/hujian/Desktop/www2.xlsx");
+ if(newFile.exists()){
+ newFile.delete();
+ }
+ newFile.createNewFile();
+ FileOutputStream fileOutputStream = new FileOutputStream(newFile);
+ InputStream inputStream = Base64Util.Base2InputStream(sb.toString());
+ fileOutputStream.write(IOUtils.inputStream2Bytes(inputStream));
+ fileOutputStream.flush();
+ fileOutputStream.close();
+
+ }*/
+
+
+
+
+}
diff --git a/src/main/java/com/fr/plugin/xxxx/report/ecode/util/FileUtil.java b/src/main/java/com/fr/plugin/xxxx/report/ecode/util/FileUtil.java
new file mode 100644
index 0000000..a31ed7c
--- /dev/null
+++ b/src/main/java/com/fr/plugin/xxxx/report/ecode/util/FileUtil.java
@@ -0,0 +1,115 @@
+package com.fr.plugin.xxxx.report.ecode.util;
+
+import com.fr.log.FineLoggerFactory;
+import com.fr.plugin.xxxx.report.ecode.bean.ExportFunc;
+import com.fr.third.org.apache.commons.io.IOUtils;
+
+import java.io.*;
+import java.util.UUID;
+
+/**
+ * 文件工具类
+ *
+ *
+ * @author fr.open
+ * @date 2021/08/01
+ */
+public class FileUtil {
+
+ /**
+ * 文件加密之后再写入指定的输出流
+ *
+ * @param file
+ * @param stream
+ * @return void
+ **/
+ public static void handle(File file, OutputStream stream) {
+ InputStream is = null;
+ try {
+ //走一个自定义的加密方法
+ File txt = new File("/Users/hujian/Desktop/111.txt");
+ is = new FileInputStream(txt);//DecodeUtil.encryptFileByFh(new FileInputStream(file), file.getName());
+ //结果文件再写入原始的输出流里
+ IOUtils.copyLarge(is, stream);
+ } catch (Exception e) {
+ FineLoggerFactory.getLogger().error(e.getMessage(), e);
+ } finally {
+ if (is != null) {
+ try {
+ is.close();
+ } catch (IOException e) {
+ FineLoggerFactory.getLogger().error(e.getMessage(), e);
+ }
+ }
+ if (stream != null) {
+ try {
+ stream.flush();
+ } catch (IOException e) {
+ FineLoggerFactory.getLogger().error(e.getMessage(), e);
+ }
+ }
+ }
+ }
+
+ /**
+ * 加密导出文件后写入原始输出流中
+ * 回调函数式处理
+ *
+ * @param outputStream 原始输出流
+ * @param func 临时输出流处理
+ * @return void
+ **/
+ public static void handle(OutputStream outputStream, ExportFunc func) {
+ File tempFile = null;
+ OutputStream os = null;
+ //写入到临时文件
+ try {
+ tempFile = FileUtil.createTempFile();
+ os = new FileOutputStream(tempFile);
+ func.export(os);//直接写到临时文件里边
+ } catch (Exception e) {
+ FineLoggerFactory.getLogger().error(e.getMessage(), e);
+ } finally {
+ if (os != null) {
+ try {
+ os.close();
+ } catch (IOException e) {
+ FineLoggerFactory.getLogger().error(e.getMessage(), e);
+ }
+ }
+ }
+
+ //处理临时文件,写到原始输出流
+ try {
+ handle(tempFile, outputStream);//临时加密后写到原始输出流中
+ } catch (Exception e) {
+ FineLoggerFactory.getLogger().error(e.getMessage(), e);
+ } finally {
+ if (tempFile != null) {
+ deleteFile(tempFile);//最后删除临时文件
+ }
+ }
+ }
+
+ /**
+ * 创建临时文件
+ *
+ * @return java.io.File
+ **/
+ public static File createTempFile() throws IOException {
+ return File.createTempFile("tmp" + UUID.randomUUID().toString(), null);//创建一个临时文件
+ }
+
+ /**
+ * 删除文件
+ *
+ * @param file
+ * @return boolean
+ * @author Zhanying
+ **/
+ public static boolean deleteFile(File file) {
+ boolean flag = file.exists() && file.isFile() && file.delete();
+ // 如果文件路径所对应的文件存在,并且是一个文件,则直接删除
+ return flag;
+ }
+}
diff --git a/src/main/java/com/fr/plugin/xxxx/report/ecode/util/HttpUtil.java b/src/main/java/com/fr/plugin/xxxx/report/ecode/util/HttpUtil.java
new file mode 100644
index 0000000..a58eff7
--- /dev/null
+++ b/src/main/java/com/fr/plugin/xxxx/report/ecode/util/HttpUtil.java
@@ -0,0 +1,137 @@
+package com.fr.plugin.xxxx.report.ecode.util;
+
+import com.fr.base.PropertiesUtils;
+import com.fr.log.FineLoggerFactory;
+import com.fr.plugin.xxxx.report.ecode.bean.EncryptInfo;
+import com.fr.plugin.xxxx.report.ecode.bean.JsonResult;
+import com.google.gson.Gson;
+import org.apache.http.HttpEntity;
+import org.apache.http.HttpResponse;
+import org.apache.http.client.HttpClient;
+import org.apache.http.client.methods.HttpPost;
+import org.apache.http.entity.ByteArrayEntity;
+import org.apache.http.impl.client.HttpClientBuilder;
+import org.apache.http.util.EntityUtils;
+
+import java.net.URLEncoder;
+import java.util.*;
+
+/**
+ * @author fr.open
+ * @date 2021/8/1
+ */
+public class HttpUtil {
+ static transient Gson gson = new Gson();
+
+ public static String decode(String base, String filename) {
+ try {
+
+ FineLoggerFactory.getLogger().info("host:{}", PropertiesUtils.getProperties("conf").getProperty("host"));
+ String url = PropertiesUtils.getProperties("conf").getProperty("host") + "/lbxdecrypt/ecrypt/decrypt";
+ HttpClient httpClient = HttpClientBuilder.create().build();
+ HttpPost httpPost = new HttpPost(url);
+ httpPost.setHeader("Content-Type", "application/json; charset=UTF-8");
+ EncryptInfo EncryptInfo = new EncryptInfo();
+ FineLoggerFactory.getLogger().info("APPID:{}", PropertiesUtils.getProperties("conf").getProperty("APPID"));
+ EncryptInfo.setApp_id(PropertiesUtils.getProperties("conf").getProperty("APPID"));
+ EncryptInfo.setTime_stamp((Calendar.getInstance().getTimeInMillis() / 1000) + "");
+ EncryptInfo.setNonce_str("90001");
+ String Sign = "";
+ Sign = verify(EncryptInfo);
+ EncryptInfo.setSign(Sign);
+ EncryptInfo.setFilename(filename);
+ EncryptInfo.setType(1);
+ EncryptInfo.setBytes(base);
+ //用户ID
+ FineLoggerFactory.getLogger().info("userId:{}", PropertiesUtils.getProperties("conf").getProperty("userId"));
+ EncryptInfo.setUserid(PropertiesUtils.getProperties("conf").getProperty("userId"));
+ EncryptInfo.setDesc("");
+ String jsonString = gson.toJson(EncryptInfo);
+ HttpEntity entity = new ByteArrayEntity(jsonString.getBytes("UTF-8"));
+ httpPost.setEntity(entity);
+ HttpResponse httpResponse = httpClient.execute(httpPost);
+ String response = EntityUtils.toString(httpResponse.getEntity());
+ System.out.println(response);
+ JsonResult res = new Gson().fromJson(response, JsonResult.class);
+ if (res.getRet() == 0) {
+ return res.getResult().toString();
+ } else {
+ return null;
+ }
+ } catch (Exception e) {
+ FineLoggerFactory.getLogger().error(e.getMessage(), e);
+ }
+ return null;
+ }
+
+ public static String encode(String BytesStr, String filename) {
+ HttpClient httpClient = HttpClientBuilder.create().build(); // Use this
+ try {
+ HttpPost httpPost = new HttpPost(PropertiesUtils.getProperties("conf").getProperty("host") + "/lbxdecrypt/ecrypt/encrypt");
+ httpPost.setHeader("Content-Type", "application/json; charset=UTF-8");
+ EncryptInfo EncryptInfo = new EncryptInfo();
+ EncryptInfo.setApp_id(PropertiesUtils.getProperties("conf").getProperty("APPID"));
+ EncryptInfo.setTime_stamp((Calendar.getInstance().getTimeInMillis() / 1000) + "");//时间戳
+ EncryptInfo.setNonce_str("90001");//随机数
+ String Sign = "";
+ Sign = verify(EncryptInfo);
+ EncryptInfo.setSign(Sign);//签名
+ EncryptInfo.setFilename(filename);
+ EncryptInfo.setType(2);//加解密类型 1:解密 2:加密
+ EncryptInfo.setDecrypttype(1);//是否是ipg加密,1:ipg加密 2:凤凰卫视 3:未知
+ EncryptInfo.setBytes(BytesStr);//字节
+ EncryptInfo.setUserid(PropertiesUtils.getProperties("conf").getProperty("userId"));
+ EncryptInfo.setDesc("");
+ String jsonString = gson.toJson(EncryptInfo);
+ System.out.println();
+ HttpEntity entity = new ByteArrayEntity(jsonString.getBytes("UTF-8"));
+ httpPost.setEntity(entity);
+// httpPost.setEntity(entity);
+ HttpResponse httpResponse = httpClient.execute(httpPost);
+ String response = EntityUtils.toString(httpResponse.getEntity());
+ System.out.println(response);
+ JsonResult JsonResult = gson.fromJson(response, JsonResult.class);
+ if (JsonResult.getRet() == 0) {
+ return JsonResult.getResult().toString();
+ }
+ } catch (Exception e) {
+ FineLoggerFactory.getLogger().error(e.getMessage(), e);
+ } finally {
+
+ }
+ return null;
+ }
+
+ //参数验证方法
+ public static String verify(EncryptInfo encryptInfo) throws Exception {
+ String app_id = encryptInfo.getApp_id();
+ String time_stamp = encryptInfo.getTime_stamp();
+ String nonce_str = encryptInfo.getNonce_str();
+ String sign = encryptInfo.getSign();
+ StringBuffer sb = new StringBuffer();
+ SortedMap