SealClient
import java.io.BufferedReader; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.io.OutputStreamWriter; import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.URL; import java.net.URLEncoder; import java.security.KeyStore; import javax.net.ssl.HostnameVerifier; import javax.net.ssl.HttpsURLConnection; import javax.net.ssl.KeyManagerFactory; import javax.net.ssl.SSLContext; import javax.net.ssl.SSLSession; import javax.net.ssl.TrustManagerFactory; import cfca.seal.util.Base64; import cfca.seal.util.StringUtil; public class SealClient { public static final String ASSIST_SEAL_SERVLET = "AssistSealServlet"; public static final String MAKE_SEAL_SERVLET = "MakeSealServlet"; public static final String WEB_SEAL_SERVLET = "WebSealServlet"; public static final String PDF_SEAL_SERVLET = "PdfSealServlet"; public static final String BUSINESS_SEAL_SERVLET = "BusinessSealServlet"; public static final String DEFAULT_CHARSET = "UTF-8"; public static final String SLASH = "/"; private String urlString; private int connectTimeout = 30000; private int readTimeout = 30000; private String keyStorePath = ""; private String keyStorePassword = ""; private String trustStorePath = ""; private String trustStorePassword = ""; public SealClient(String urlString, String keyStorePath, String keyStorePassword, String trustStorePath, String trustStorePassword) { this.keyStorePath = keyStorePath; this.keyStorePassword = keyStorePassword; this.trustStorePath = trustStorePath; this.trustStorePassword = trustStorePassword; this.urlString = urlString; } public SealClient(String urlString) { this.urlString = urlString; } public SealClient(String urlString, int connectTimeout, int readTimeout) { this.urlString = urlString; this.connectTimeout = connectTimeout; this.readTimeout = readTimeout; } public String reqAndRes(String urlString, String parameterData) throws Exception { String result = ""; if ((StringUtil.isNotEmpty(urlString)) && (urlString.startsWith("https://"))) result = reqAndResForHttps(urlString, parameterData); else if ((StringUtil.isNotEmpty(urlString)) && (urlString.startsWith("http://"))) { result = reqAndResForHttp(urlString, parameterData); } return result; } public String reqAndResForHttps(String urlString, String parameterData) throws Exception { OutputStream outputStream = null; OutputStreamWriter outputStreamWriter = null; InputStream inputStream = null; InputStreamReader inputStreamReader = null; BufferedReader reader = null; StringBuffer resultBuffer = new StringBuffer(); try { SSLContext sslContext = getSSLContext(this.keyStorePath, this.keyStorePassword, this.trustStorePath, this.trustStorePassword); URL url = new URL(urlString); HttpsURLConnection conn = (HttpsURLConnection)url.openConnection(); conn.setSSLSocketFactory(sslContext.getSocketFactory()); conn.setRequestMethod("POST"); conn.setDoInput(true); conn.setDoOutput(true); conn.setRequestProperty("Accept-Charset", "utf-8"); conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); System.setProperty("sun.net.client.defaultConnectTimeout", String.valueOf(this.connectTimeout)); System.setProperty("sun.net.client.defaultReadTimeout", String.valueOf(this.readTimeout)); conn.setHostnameVerifier(new HostnameVerifier() { public boolean verify(String hostname, SSLSession session) { return true; } }); conn.setRequestProperty("Content-Length", String.valueOf(parameterData.length())); outputStream = conn.getOutputStream(); outputStreamWriter = new OutputStreamWriter(outputStream); outputStreamWriter.write(parameterData); outputStreamWriter.flush(); inputStream = conn.getInputStream(); inputStreamReader = new InputStreamReader(inputStream); reader = new BufferedReader(inputStreamReader); String tempLine = null; while ((tempLine = reader.readLine()) != null) resultBuffer.append(tempLine); } catch (MalformedURLException e) { throw e; } catch (IOException e) { throw e; } finally { if (outputStreamWriter != null) { outputStreamWriter.close(); } if (outputStream != null) { outputStream.close(); } if (reader != null) { reader.close(); } if (inputStreamReader != null) { inputStreamReader.close(); } if (inputStream != null) { inputStream.close(); } } return resultBuffer.toString(); } public String reqAndResForHttp(String urlString, String parameterData) throws Exception { OutputStream outputStream = null; OutputStreamWriter outputStreamWriter = null; InputStream inputStream = null; InputStreamReader inputStreamReader = null; BufferedReader reader = null; StringBuffer resultBuffer = new StringBuffer(); try { URL url = new URL(urlString); HttpURLConnection conn = (HttpURLConnection)url.openConnection(); conn.setDoOutput(true); conn.setDoInput(true); conn.setRequestMethod("POST"); conn.setRequestProperty("Accept-Charset", "utf-8"); conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); conn.setRequestProperty("Content-Length", String.valueOf(parameterData.length())); System.setProperty("sun.net.client.defaultConnectTimeout", String.valueOf(this.connectTimeout)); System.setProperty("sun.net.client.defaultReadTimeout", String.valueOf(this.readTimeout)); outputStream = conn.getOutputStream(); outputStreamWriter = new OutputStreamWriter(outputStream); outputStreamWriter.write(parameterData); outputStreamWriter.flush(); inputStream = conn.getInputStream(); inputStreamReader = new InputStreamReader(inputStream); reader = new BufferedReader(inputStreamReader); String tempLine = null; while ((tempLine = reader.readLine()) != null) resultBuffer.append(tempLine); } catch (MalformedURLException e) { throw e; } catch (IOException e) { throw e; } finally { if (outputStreamWriter != null) { outputStreamWriter.close(); } if (outputStream != null) { outputStream.close(); } if (reader != null) { reader.close(); } if (inputStreamReader != null) { inputStreamReader.close(); } if (inputStream != null) { inputStream.close(); } } return resultBuffer.toString(); } public SSLContext getSSLContext(String keyStorePath, String keyStorePassword, String trustStorePath, String trustStorePassword) throws Exception { SSLContext ctx = SSLContext.getInstance("SSL"); String jdkvs = System.getProperty("java.vm.vendor"); KeyManagerFactory kmf = null; TrustManagerFactory tmf = null; if ((null != jdkvs) && (jdkvs.startsWith("IBM"))) { kmf = KeyManagerFactory.getInstance("IbmX509"); tmf = TrustManagerFactory.getInstance("IbmPKIX"); } else { kmf = KeyManagerFactory.getInstance("SunX509"); tmf = TrustManagerFactory.getInstance("SunX509"); } KeyStore ks = null; if (keyStorePath.indexOf("jks") >= 0) ks = KeyStore.getInstance("JKS"); else if (keyStorePath.indexOf("pfx") >= 0) { ks = KeyStore.getInstance("PKCS12"); } KeyStore tks = KeyStore.getInstance("JKS"); ks.load(new FileInputStream(keyStorePath), keyStorePassword.toCharArray()); tks.load(new FileInputStream(trustStorePath), trustStorePassword.toCharArray()); kmf.init(ks, keyStorePassword.toCharArray()); tmf.init(tks); ctx.init(kmf.getKeyManagers(), tmf.getTrustManagers(), null); return ctx; } public String makeSeal(byte[] pfx, String pfxPassword, byte[] image, String sealInfoXML) throws Exception { try { String pfxString = new String(Base64.encode(pfx), "UTF-8"); pfxString = URLEncoder.encode(pfxString, "UTF-8"); pfxPassword = new String(Base64.encode(pfxPassword.getBytes("UTF-8")), "UTF-8"); pfxPassword = URLEncoder.encode(pfxPassword, "UTF-8"); String imageString = new String(Base64.encode(image), "UTF-8"); imageString = URLEncoder.encode(imageString, "UTF-8"); sealInfoXML = new String(Base64.encode(sealInfoXML.getBytes("UTF-8")), "UTF-8"); sealInfoXML = URLEncoder.encode(sealInfoXML, "UTF-8"); String parameterData = "type=makeSeal&pfx=" + pfxString + "&pfxPassword=" + pfxPassword + "&image=" + imageString + "&sealInfoXML=" + sealInfoXML; String resultString = reqAndRes(this.urlString, parameterData); return new String(Base64.decode(resultString.getBytes("UTF-8"))); } catch (Exception e) { e.printStackTrace(); throw e; } } public String makeNamedSeal(byte[] pfx, String pfxPassword, String sealInfoXML) throws Exception { try { String pfxString = new String(Base64.encode(pfx), "UTF-8"); pfxString = URLEncoder.encode(pfxString, "UTF-8"); pfxPassword = new String(Base64.encode(pfxPassword.getBytes("UTF-8")), "UTF-8"); pfxPassword = URLEncoder.encode(pfxPassword, "UTF-8"); sealInfoXML = new String(Base64.encode(sealInfoXML.getBytes("UTF-8")), "UTF-8"); sealInfoXML = URLEncoder.encode(sealInfoXML, "UTF-8"); String parameterData = "type=makeNamedSeal&pfx=" + pfxString + "&pfxPassword=" + pfxPassword + "&sealInfoXML=" + sealInfoXML; String resultString = reqAndRes(this.urlString, parameterData); return new String(Base64.decode(resultString.getBytes("UTF-8"))); } catch (Exception e) { e.printStackTrace(); throw e; } } public String updateSeal(byte[] pfx, String pfxPassword, byte[] image, String sealInfoXML) throws Exception { try { String pfxString = new String(Base64.encode(pfx), "UTF-8"); pfxString = URLEncoder.encode(pfxString, "UTF-8"); pfxPassword = new String(Base64.encode(pfxPassword.getBytes("UTF-8")), "UTF-8"); pfxPassword = URLEncoder.encode(pfxPassword, "UTF-8"); String imageString = new String(Base64.encode(image), "UTF-8"); imageString = URLEncoder.encode(imageString, "UTF-8"); sealInfoXML = new String(Base64.encode(sealInfoXML.getBytes("UTF-8")), "UTF-8"); sealInfoXML = URLEncoder.encode(sealInfoXML, "UTF-8"); String parameterData = "type=updateSeal&pfx=" + pfxString + "&pfxPassword=" + pfxPassword + "&image=" + imageString + "&sealInfoXML=" + sealInfoXML; String resultString = reqAndRes(this.urlString, parameterData); return new String(Base64.decode(resultString.getBytes("UTF-8"))); } catch (Exception e) { e.printStackTrace(); throw e; } } public String updateNamedSeal(byte[] pfx, String pfxPassword, String sealInfoXML) throws Exception { try { String pfxString = new String(Base64.encode(pfx), "UTF-8"); pfxString = URLEncoder.encode(pfxString, "UTF-8"); pfxPassword = new String(Base64.encode(pfxPassword.getBytes("UTF-8")), "UTF-8"); pfxPassword = URLEncoder.encode(pfxPassword, "UTF-8"); sealInfoXML = new String(Base64.encode(sealInfoXML.getBytes("UTF-8")), "UTF-8"); sealInfoXML = URLEncoder.encode(sealInfoXML, "UTF-8"); String parameterData = "type=updateNamedSeal&pfx=" + pfxString + "&pfxPassword=" + pfxPassword + "&sealInfoXML=" + sealInfoXML; String resultString = reqAndRes(this.urlString, parameterData); return new String(Base64.decode(resultString.getBytes("UTF-8"))); } catch (Exception e) { e.printStackTrace(); throw e; } } public byte[] sealAutoPdf(byte[] pdf, String sealStrategyXML) throws Exception { try { String pdfString = new String(Base64.encode(pdf), "UTF-8"); pdfString = URLEncoder.encode(pdfString, "UTF-8"); sealStrategyXML = new String(Base64.encode(sealStrategyXML.getBytes("UTF-8")), "UTF-8"); sealStrategyXML = URLEncoder.encode(sealStrategyXML, "UTF-8"); String parameterData = "type=sealAutoPdf&pdf=" + pdfString + "&sealStrategyXML=" + sealStrategyXML; String resultString = reqAndRes(this.urlString, parameterData); return Base64.decode(resultString.getBytes("UTF-8")); } catch (Exception e) { e.printStackTrace(); throw e; } } public byte[] batchSealAutoPdf(byte[] pdf, String batchSealStrategyXML) throws Exception { try { String pdfString = new String(Base64.encode(pdf), "UTF-8"); pdfString = URLEncoder.encode(pdfString, "UTF-8"); batchSealStrategyXML = new String(Base64.encode(batchSealStrategyXML.getBytes("UTF-8")), "UTF-8"); batchSealStrategyXML = URLEncoder.encode(batchSealStrategyXML, "UTF-8"); String parameterData = "type=batchSealAutoPdf&pdf=" + pdfString + "&batchSealStrategyXML=" + batchSealStrategyXML; String resultString = reqAndRes(this.urlString, parameterData); return Base64.decode(resultString.getBytes("UTF-8")); } catch (Exception e) { e.printStackTrace(); throw e; } } public String sealBase64PdfFunction(String pdfBase64, String pfxBase64, String pfxPassword, String imageBase64, String sealFunctionStrategyXML) throws Exception { try { pdfBase64 = new String(Base64.encode(pdfBase64.getBytes("UTF-8")), "UTF-8"); pdfBase64 = URLEncoder.encode(pdfBase64, "UTF-8"); pfxBase64 = new String(Base64.encode(pfxBase64.getBytes("UTF-8")), "UTF-8"); pfxBase64 = URLEncoder.encode(pfxBase64, "UTF-8"); pfxPassword = new String(Base64.encode(pfxPassword.getBytes("UTF-8")), "UTF-8"); pfxPassword = URLEncoder.encode(pfxPassword, "UTF-8"); imageBase64 = new String(Base64.encode(imageBase64.getBytes("UTF-8")), "UTF-8"); imageBase64 = URLEncoder.encode(imageBase64, "UTF-8"); sealFunctionStrategyXML = new String(Base64.encode(sealFunctionStrategyXML.getBytes("UTF-8")), "UTF-8"); sealFunctionStrategyXML = URLEncoder.encode(sealFunctionStrategyXML, "UTF-8"); String parameterData = "type=sealBase64PdfFunction&pdfBase64=" + pdfBase64 + "&pfxBase64=" + pfxBase64 + "&pfxPassword=" + pfxPassword + "&imageBase64=" + imageBase64 + "&sealFunctionStrategyXML=" + sealFunctionStrategyXML; return reqAndRes(this.urlString, parameterData); } catch (Exception e) { e.printStackTrace(); throw e; } } public byte[] sealPdfFunction(byte[] pdf, byte[] pfx, String pfxPassword, byte[] image, String sealFunctionStrategyXML) throws Exception { try { String pdfString = new String(Base64.encode(pdf), "UTF-8"); pdfString = URLEncoder.encode(pdfString, "UTF-8"); String pfxString = new String(Base64.encode(pfx), "UTF-8"); pfxString = URLEncoder.encode(pfxString, "UTF-8"); pfxPassword = new String(Base64.encode(pfxPassword.getBytes("UTF-8")), "UTF-8"); pfxPassword = URLEncoder.encode(pfxPassword, "UTF-8"); String imageString = new String(Base64.encode(image), "UTF-8"); imageString = URLEncoder.encode(imageString, "UTF-8"); sealFunctionStrategyXML = new String(Base64.encode(sealFunctionStrategyXML.getBytes("UTF-8")), "UTF-8"); sealFunctionStrategyXML = URLEncoder.encode(sealFunctionStrategyXML, "UTF-8"); String parameterData = "type=sealPdfFunction&pdfString=" + pdfString + "&pfxString=" + pfxString + "&pfxPassword=" + pfxPassword + "&imageString=" + imageString + "&sealFunctionStrategyXML=" + sealFunctionStrategyXML; return Base64.decode(reqAndRes(this.urlString, parameterData)); } catch (Exception e) { e.printStackTrace(); throw e; } } public byte[] sealAutoCrossPdf(byte[] pdf, String crossSealStrategyXML) throws Exception { try { String pdfString = new String(Base64.encode(pdf), "UTF-8"); pdfString = URLEncoder.encode(pdfString, "UTF-8"); crossSealStrategyXML = new String(Base64.encode(crossSealStrategyXML.getBytes("UTF-8")), "UTF-8"); crossSealStrategyXML = URLEncoder.encode(crossSealStrategyXML, "UTF-8"); String parameterData = "type=sealAutoCrossPdf&pdf=" + pdfString + "&crossSealStrategyXML=" + crossSealStrategyXML; String resultString = reqAndRes(this.urlString, parameterData); return Base64.decode(resultString.getBytes("UTF-8")); } catch (Exception e) { e.printStackTrace(); throw e; } } public byte[] sealAutoSynthesizedBusinessPdf(byte[] pdf, String businessXML, String sealStrategyXML) throws Exception { try { String pdfString = new String(Base64.encode(pdf), "UTF-8"); pdfString = URLEncoder.encode(pdfString, "UTF-8"); businessXML = new String(Base64.encode(businessXML.getBytes("UTF-8")), "UTF-8"); businessXML = URLEncoder.encode(businessXML, "UTF-8"); sealStrategyXML = new String(Base64.encode(sealStrategyXML.getBytes("UTF-8")), "UTF-8"); sealStrategyXML = URLEncoder.encode(sealStrategyXML, "UTF-8"); String parameterData = "type=sealAutoSynthesizedBusinessPdf&pdf=" + pdfString + "&businessXML=" + businessXML + "&sealStrategyXML=" + sealStrategyXML; String resultString = reqAndRes(this.urlString, parameterData); return Base64.decode(resultString.getBytes("UTF-8")); } catch (Exception e) { e.printStackTrace(); throw e; } } public byte[] addWaterMark2Pdf(byte[] pdf, String waterMarkStrategyXML) throws Exception { try { String pdfString = new String(Base64.encode(pdf), "UTF-8"); pdfString = URLEncoder.encode(pdfString, "UTF-8"); waterMarkStrategyXML = new String(Base64.encode(waterMarkStrategyXML.getBytes("UTF-8")), "UTF-8"); waterMarkStrategyXML = URLEncoder.encode(waterMarkStrategyXML, "UTF-8"); String parameterData = "type=addWaterMark2Pdf&pdf=" + pdfString + "&waterMarkStrategyXML=" + waterMarkStrategyXML; String resultString = reqAndRes(this.urlString, parameterData); return Base64.decode(resultString.getBytes("UTF-8")); } catch (Exception e) { e.printStackTrace(); throw e; } } public byte[] signWebSeal(String sourceBase64, String sealStrategyXml) throws Exception { try { sourceBase64 = new String(Base64.encode(sourceBase64.getBytes("UTF-8")), "UTF-8"); sourceBase64 = URLEncoder.encode(sourceBase64, "UTF-8"); sealStrategyXml = new String(Base64.encode(sealStrategyXml.getBytes("UTF-8")), "UTF-8"); sealStrategyXml = URLEncoder.encode(sealStrategyXml, "UTF-8"); String parameterData = "type=signWebSeal&sourceBase64=" + sourceBase64 + "&sealStrategyXml=" + sealStrategyXml; String resultString = reqAndRes(this.urlString, parameterData); return Base64.decode(resultString.getBytes("UTF-8")); } catch (Exception e) { e.printStackTrace(); throw e; } } public String verifyPdfSeal(byte[] sealedPdf, String verifyStrategyXML) throws Exception { try { String sealedPdfString = new String(Base64.encode(sealedPdf), "UTF-8"); sealedPdfString = URLEncoder.encode(sealedPdfString, "UTF-8"); verifyStrategyXML = new String(Base64.encode(verifyStrategyXML.getBytes("UTF-8")), "UTF-8"); verifyStrategyXML = URLEncoder.encode(verifyStrategyXML, "UTF-8"); String parameterData = "type=verifyPdfSeal&sealedPdf=" + sealedPdfString + "&verifyStrategyXML=" + verifyStrategyXML; String resultString = reqAndRes(this.urlString, parameterData); return new String(Base64.decode(resultString.getBytes("UTF-8"))); } catch (Exception e) { e.printStackTrace(); throw e; } } public String verifyWebSeal(String webSealSource, String sourceBase64, String verifyStrategyXML) throws Exception { try { webSealSource = new String(Base64.encode(webSealSource.getBytes("UTF-8")), "UTF-8"); webSealSource = URLEncoder.encode(webSealSource, "UTF-8"); sourceBase64 = new String(Base64.encode(sourceBase64.getBytes("UTF-8")), "UTF-8"); sourceBase64 = URLEncoder.encode(sourceBase64, "UTF-8"); verifyStrategyXML = new String(Base64.encode(verifyStrategyXML.getBytes("UTF-8")), "UTF-8"); verifyStrategyXML = URLEncoder.encode(verifyStrategyXML, "UTF-8"); String parameterData = "type=verifyWebSeal&webSealSource=" + webSealSource + "&sourceBase64=" + sourceBase64 + "&verifyStrategyXML=" + verifyStrategyXML; String resultString = reqAndRes(this.urlString, parameterData); return new String(Base64.decode(resultString.getBytes("UTF-8"))); } catch (Exception e) { e.printStackTrace(); throw e; } } public byte[] synthesizeAutoBusinessPdf(byte[] pdf, String businessXML) throws Exception { try { String pdfString = new String(Base64.encode(pdf), "UTF-8"); pdfString = URLEncoder.encode(pdfString, "UTF-8"); businessXML = new String(Base64.encode(businessXML.getBytes("UTF-8")), "UTF-8"); businessXML = URLEncoder.encode(businessXML, "UTF-8"); String parameterData = "type=synthesizeAutoBusinessPdf&pdf=" + pdfString + "&businessXML=" + businessXML; String resultString = reqAndRes(this.urlString, parameterData); return Base64.decode(resultString.getBytes("UTF-8")); } catch (Exception e) { e.printStackTrace(); throw e; } } public byte[] transformToPdf(byte[] source, String fileType) throws Exception { try { String sourceString = new String(Base64.encode(source), "UTF-8"); sourceString = URLEncoder.encode(sourceString, "UTF-8"); fileType = new String(Base64.encode(fileType.getBytes("UTF-8")), "UTF-8"); fileType = URLEncoder.encode(fileType, "UTF-8"); String parameterData = "type=transformToPdf&sourceString=" + sourceString + "&fileType=" + fileType; String resultString = reqAndRes(this.urlString, parameterData); return Base64.decode(resultString.getBytes("UTF-8")); } catch (Exception e) { e.printStackTrace(); throw e; } } public String p1Sign(byte[] source, String signStrategyXML) throws Exception { try { String sourceString = new String(Base64.encode(source), "UTF-8"); sourceString = URLEncoder.encode(sourceString, "UTF-8"); signStrategyXML = new String(Base64.encode(signStrategyXML.getBytes("UTF-8")), "UTF-8"); signStrategyXML = URLEncoder.encode(signStrategyXML, "UTF-8"); String parameterData = "type=p1Sign&source=" + sourceString + "&signStrategyXML=" + signStrategyXML; String resultString = reqAndRes(this.urlString, parameterData); return new String(Base64.decode(resultString.getBytes("UTF-8"))); } catch (Exception e) { e.printStackTrace(); throw e; } } public String p7SignDetached(byte[] source, String signStrategyXML) throws Exception { try { String sourceString = new String(Base64.encode(source), "UTF-8"); sourceString = URLEncoder.encode(sourceString, "UTF-8"); signStrategyXML = new String(Base64.encode(signStrategyXML.getBytes("UTF-8")), "UTF-8"); signStrategyXML = URLEncoder.encode(signStrategyXML, "UTF-8"); String parameterData = "type=p7SignDetached&source=" + sourceString + "&signStrategyXML=" + signStrategyXML; String resultString = reqAndRes(this.urlString, parameterData); return new String(Base64.decode(resultString.getBytes("UTF-8"))); } catch (Exception e) { e.printStackTrace(); throw e; } } public String p7VerifyDetached(String signatureBase64, byte[] source, String verifyStrategyXML) throws Exception { try { signatureBase64 = new String(Base64.encode(signatureBase64.getBytes("UTF-8")), "UTF-8"); signatureBase64 = URLEncoder.encode(signatureBase64, "UTF-8"); String sourceString = new String(Base64.encode(source), "UTF-8"); sourceString = URLEncoder.encode(sourceString, "UTF-8"); verifyStrategyXML = new String(Base64.encode(verifyStrategyXML.getBytes("UTF-8")), "UTF-8"); verifyStrategyXML = URLEncoder.encode(verifyStrategyXML, "UTF-8"); String parameterData = "type=p7VerifyDetached&signatureBase64=" + signatureBase64 + "&source=" + sourceString + "&verifyStrategyXML=" + verifyStrategyXML; String resultString = reqAndRes(this.urlString, parameterData); return new String(Base64.decode(resultString.getBytes("UTF-8"))); } catch (Exception e) { e.printStackTrace(); throw e; } } public String getSealInfo(String sealCode) throws Exception { try { sealCode = new String(Base64.encode(sealCode.getBytes("UTF-8")), "UTF-8"); sealCode = URLEncoder.encode(sealCode, "UTF-8"); String parameterData = "type=getSealInfo&sealCode=" + sealCode; String resultString = reqAndRes(this.urlString, parameterData); return new String(Base64.decode(resultString.getBytes("UTF-8"))); } catch (Exception e) { e.printStackTrace(); throw e; } } public String bindSeal(String bindSealXML) throws Exception { try { bindSealXML = new String(Base64.encode(bindSealXML.getBytes("UTF-8")), "UTF-8"); bindSealXML = URLEncoder.encode(bindSealXML, "UTF-8"); String parameterData = "type=bindSeal&bindSealXML=" + bindSealXML; String resultString = reqAndRes(this.urlString, parameterData); return new String(Base64.decode(resultString.getBytes("UTF-8"))); } catch (Exception e) { e.printStackTrace(); throw e; } } public String autoGenerateImage(String imageStrategyXML) throws Exception { try { imageStrategyXML = new String(Base64.encode(imageStrategyXML.getBytes("UTF-8")), "UTF-8"); imageStrategyXML = URLEncoder.encode(imageStrategyXML, "UTF-8"); String parameterData = "type=autoGenerateImage&imageStrategyXML=" + imageStrategyXML; String resultString = reqAndRes(this.urlString, parameterData); return new String(Base64.decode(resultString.getBytes("UTF-8"))); } catch (Exception e) { e.printStackTrace(); throw e; } } }