|  | @ -0,0 +1,344 @@
 | 
	
		
			
				|  |  | package com.yihu.hos.rest.common.http;
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | import com.fasterxml.jackson.core.JsonProcessingException;
 | 
	
		
			
				|  |  | import com.fasterxml.jackson.databind.ObjectMapper;
 | 
	
		
			
				|  |  | import com.yihu.hos.core.datatype.StringUtil;
 | 
	
		
			
				|  |  | import com.yihu.hos.core.httpclient.HttpClientUtil;
 | 
	
		
			
				|  |  | import com.yihu.hos.core.httpclient.HttpResponse;
 | 
	
		
			
				|  |  | import org.apache.http.Header;
 | 
	
		
			
				|  |  | import org.apache.http.HttpEntity;
 | 
	
		
			
				|  |  | import org.apache.http.NameValuePair;
 | 
	
		
			
				|  |  | import org.apache.http.client.entity.GzipDecompressingEntity;
 | 
	
		
			
				|  |  | import org.apache.http.client.methods.CloseableHttpResponse;
 | 
	
		
			
				|  |  | import org.apache.http.client.methods.HttpGet;
 | 
	
		
			
				|  |  | import org.apache.http.conn.ssl.SSLConnectionSocketFactory;
 | 
	
		
			
				|  |  | import org.apache.http.entity.ContentType;
 | 
	
		
			
				|  |  | import org.apache.http.impl.client.CloseableHttpClient;
 | 
	
		
			
				|  |  | import org.apache.http.impl.client.HttpClients;
 | 
	
		
			
				|  |  | import org.apache.http.ssl.SSLContexts;
 | 
	
		
			
				|  |  | import org.apache.http.util.EntityUtils;
 | 
	
		
			
				|  |  | import org.springframework.core.io.ClassPathResource;
 | 
	
		
			
				|  |  | import org.springframework.core.io.Resource;
 | 
	
		
			
				|  |  | import org.springframework.core.io.support.EncodedResource;
 | 
	
		
			
				|  |  | import org.springframework.core.io.support.PropertiesLoaderUtils;
 | 
	
		
			
				|  |  | import org.apache.http.conn.ssl.TrustSelfSignedStrategy;
 | 
	
		
			
				|  |  | import javax.net.ssl.SSLContext;
 | 
	
		
			
				|  |  | import java.io.*;
 | 
	
		
			
				|  |  | import java.util.HashMap;
 | 
	
		
			
				|  |  | import java.util.List;
 | 
	
		
			
				|  |  | import java.util.Map;
 | 
	
		
			
				|  |  | import java.util.Properties;
 | 
	
		
			
				|  |  | import java.util.zip.GZIPInputStream;
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | public class EHRHttpHelper {
 | 
	
		
			
				|  |  |     public static String defaultHttpUrl;
 | 
	
		
			
				|  |  |     public static String clientId;
 | 
	
		
			
				|  |  |     public static String clientKey;
 | 
	
		
			
				|  |  |     private static String defaultPropertiesPath = "config/http.properties";
 | 
	
		
			
				|  |  |     private static SSLConnectionSocketFactory defaultSSL;
 | 
	
		
			
				|  |  |     private static String defaultHttpUser;
 | 
	
		
			
				|  |  |     private static String defaultHttpPassword;
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     static {
 | 
	
		
			
				|  |  |         //默认配置
 | 
	
		
			
				|  |  |         try {
 | 
	
		
			
				|  |  |             Resource resource = new ClassPathResource(defaultPropertiesPath);
 | 
	
		
			
				|  |  |             EncodedResource encRes = new EncodedResource(resource, "UTF-8");
 | 
	
		
			
				|  |  |             Properties props = PropertiesLoaderUtils.loadProperties(encRes);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             defaultHttpUrl = props.getProperty("httpUrl");
 | 
	
		
			
				|  |  |             defaultHttpUser = props.getProperty("httpUser");
 | 
	
		
			
				|  |  |             defaultHttpPassword = props.getProperty("httpPassword");
 | 
	
		
			
				|  |  |             clientId = props.getProperty("clientId");
 | 
	
		
			
				|  |  |             clientKey = props.getProperty("clientKey");
 | 
	
		
			
				|  |  |             String sslKeystore = props.getProperty("sslKeystore");
 | 
	
		
			
				|  |  |             String sslPassword = props.getProperty("sslPassword");
 | 
	
		
			
				|  |  |             if (StringUtil.isEmpty(sslKeystore)) {
 | 
	
		
			
				|  |  |                 String home = System.getProperty("catalina.home").replace('\\', '/');
 | 
	
		
			
				|  |  |                 String homeUrl = home.substring(0, home.lastIndexOf('/') + 1);
 | 
	
		
			
				|  |  |                 // sslKeystore = homeUrl + "tomcat.keystore";
 | 
	
		
			
				|  |  |                 sslKeystore = "E://tomcat.keystore";
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |             if (sslKeystore != null && sslKeystore.length() > 0 && sslPassword != null && sslPassword.length() > 0) {
 | 
	
		
			
				|  |  |                 SSLContext sslContext = SSLContexts.custom()
 | 
	
		
			
				|  |  |                         .loadTrustMaterial(new File(sslKeystore), sslPassword.toCharArray(),
 | 
	
		
			
				|  |  |                                 new TrustSelfSignedStrategy())
 | 
	
		
			
				|  |  |                         .build();
 | 
	
		
			
				|  |  |                 defaultSSL = new SSLConnectionSocketFactory(
 | 
	
		
			
				|  |  |                         sslContext,
 | 
	
		
			
				|  |  |                         new String[]{"TLSv1"},
 | 
	
		
			
				|  |  |                         null,
 | 
	
		
			
				|  |  |                         SSLConnectionSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         } catch (Exception e) {
 | 
	
		
			
				|  |  |             System.out.print(e.getMessage());
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**************************
 | 
	
		
			
				|  |  |      * Get方法
 | 
	
		
			
				|  |  |      ******************************************/
 | 
	
		
			
				|  |  |     public static HttpResponse get(String url) {
 | 
	
		
			
				|  |  |         return get(url, null, null);
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     public static HttpResponse get(String url, Map<String, Object> params) {
 | 
	
		
			
				|  |  |         return get(url, params, null);
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     public static HttpResponse get(String url, Map<String, Object> params, Map<String, Object> header) {
 | 
	
		
			
				|  |  |         if (url.startsWith("https")) {
 | 
	
		
			
				|  |  |             return get(url, params, header, defaultSSL);
 | 
	
		
			
				|  |  |         } else {
 | 
	
		
			
				|  |  |             //默认http不走ssl和用户密码
 | 
	
		
			
				|  |  |             return get(url, params, header, null, null, null);
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     public static HttpResponse get(String url, Map<String, Object> params, Map<String, Object> header, Boolean isCheck) {
 | 
	
		
			
				|  |  |         if (isCheck) {
 | 
	
		
			
				|  |  |             return get(url, params, header, defaultSSL, defaultHttpUser, defaultHttpPassword);
 | 
	
		
			
				|  |  |         } else {
 | 
	
		
			
				|  |  |             return get(url, params, header, null, null, null);
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     public static HttpResponse get(String url, Map<String, Object> params, Map<String, Object> header, SSLConnectionSocketFactory ssl) {
 | 
	
		
			
				|  |  |         return get(url, params, header, ssl, defaultHttpUser, defaultHttpPassword);
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     public static HttpResponse get(String url, Map<String, Object> params, Map<String, Object> header, SSLConnectionSocketFactory ssl, String user, String password) {
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         return HttpClientUtil.request("GET", url, params, header, ssl, user, password);
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**************************
 | 
	
		
			
				|  |  |      * Post方法
 | 
	
		
			
				|  |  |      ******************************************/
 | 
	
		
			
				|  |  |     public static HttpResponse post(String url) {
 | 
	
		
			
				|  |  |         return post(url, null, null);
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     public static HttpResponse post(String url, Map<String, Object> params) {
 | 
	
		
			
				|  |  |         return post(url, params, null);
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     public static HttpResponse post(String url, Map<String, Object> params, Map<String, Object> header) {
 | 
	
		
			
				|  |  |         if (url.startsWith("https")) {
 | 
	
		
			
				|  |  |             return post(url, params, header, defaultSSL);
 | 
	
		
			
				|  |  |         } else {
 | 
	
		
			
				|  |  |             //默认http不走ssl和用户密码
 | 
	
		
			
				|  |  |             return post(url, params, header, null, null, null);
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     public static HttpResponse post(String url, Map<String, Object> params, Map<String, Object> header, Boolean isCheck) {
 | 
	
		
			
				|  |  |         if (isCheck) {
 | 
	
		
			
				|  |  |             return post(url, params, header, defaultSSL, defaultHttpUser, defaultHttpPassword);
 | 
	
		
			
				|  |  |         } else {
 | 
	
		
			
				|  |  |             return post(url, params, header, null, null, null);
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     public static HttpResponse post(String url, Map<String, Object> params, Map<String, Object> header, SSLConnectionSocketFactory ssl) {
 | 
	
		
			
				|  |  |         return post(url, params, header, ssl, defaultHttpUser, defaultHttpPassword);
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     public static HttpResponse post(String url, Map<String, Object> params, Map<String, Object> header, SSLConnectionSocketFactory ssl, String user, String password) {
 | 
	
		
			
				|  |  |         return HttpClientUtil.request("POST", url, params, header, ssl, user, password);
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     public static HttpResponse postFile(String url, List<NameValuePair> formParams, String filePath, Map<String, Object> header) {
 | 
	
		
			
				|  |  |         File file = new File(filePath);
 | 
	
		
			
				|  |  |         if (url.startsWith("https")) {
 | 
	
		
			
				|  |  |             return HttpClientUtil.postFile(url, file, formParams, defaultSSL, defaultHttpUser, defaultHttpPassword, header);
 | 
	
		
			
				|  |  |         } else {
 | 
	
		
			
				|  |  |             //默认http不走ssl和用户密码
 | 
	
		
			
				|  |  |             return HttpClientUtil.postFile(url, file, formParams, null, defaultHttpUser, defaultHttpPassword, header);
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     public static HttpResponse postFile(String url, List<NameValuePair> formParams, File file, Map<String, Object> header) {
 | 
	
		
			
				|  |  |         if (url.startsWith("https")) {
 | 
	
		
			
				|  |  |             return HttpClientUtil.postFile(url, file, formParams, defaultSSL, defaultHttpUser, defaultHttpPassword, header);
 | 
	
		
			
				|  |  |         } else {
 | 
	
		
			
				|  |  |             //默认http不走ssl和用户密码
 | 
	
		
			
				|  |  |             return HttpClientUtil.postFile(url, file, formParams, null, defaultHttpUser, defaultHttpPassword, header);
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**************************
 | 
	
		
			
				|  |  |      * Put方法
 | 
	
		
			
				|  |  |      ******************************************/
 | 
	
		
			
				|  |  |     public static HttpResponse put(String url) {
 | 
	
		
			
				|  |  |         return put(url, null, null);
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     public static HttpResponse put(String url, Map<String, Object> params) {
 | 
	
		
			
				|  |  |         return put(url, params, null);
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     public static HttpResponse put(String url, Map<String, Object> params, Map<String, Object> header) {
 | 
	
		
			
				|  |  |         if (url.startsWith("https")) {
 | 
	
		
			
				|  |  |             return put(url, params, header, defaultSSL);
 | 
	
		
			
				|  |  |         } else {
 | 
	
		
			
				|  |  |             //默认http不走ssl和用户密码
 | 
	
		
			
				|  |  |             return put(url, params, header, null, null, null);
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     public static HttpResponse put(String url, Map<String, Object> params, Map<String, Object> header, Boolean isCheck) {
 | 
	
		
			
				|  |  |         if (isCheck) {
 | 
	
		
			
				|  |  |             return put(url, params, header, defaultSSL, defaultHttpUser, defaultHttpPassword);
 | 
	
		
			
				|  |  |         } else {
 | 
	
		
			
				|  |  |             return put(url, params, header, null, null, null);
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     public static HttpResponse put(String url, Map<String, Object> params, Map<String, Object> header, SSLConnectionSocketFactory ssl) {
 | 
	
		
			
				|  |  |         return put(url, params, header, ssl, defaultHttpUser, defaultHttpPassword);
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     public static HttpResponse put(String url, Map<String, Object> params, Map<String, Object> header, SSLConnectionSocketFactory ssl, String user, String password) {
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         return HttpClientUtil.request("PUT", url, params, header, ssl, user, password);
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**************************
 | 
	
		
			
				|  |  |      * Delete方法
 | 
	
		
			
				|  |  |      **************************************/
 | 
	
		
			
				|  |  |     public static HttpResponse delete(String url) {
 | 
	
		
			
				|  |  |         return delete(url, null, null);
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     public static HttpResponse delete(String url, Map<String, Object> params) {
 | 
	
		
			
				|  |  |         return delete(url, params, null);
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     public static HttpResponse delete(String url, Map<String, Object> params, Map<String, Object> header) {
 | 
	
		
			
				|  |  |         if (url.startsWith("https")) {
 | 
	
		
			
				|  |  |             return delete(url, params, header, defaultSSL);
 | 
	
		
			
				|  |  |         } else {
 | 
	
		
			
				|  |  |             //默认http不走ssl和用户密码
 | 
	
		
			
				|  |  |             return delete(url, params, header, null, null, null);
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     public static HttpResponse delete(String url, Map<String, Object> params, Map<String, Object> header, Boolean isCheck) {
 | 
	
		
			
				|  |  |         if (isCheck) {
 | 
	
		
			
				|  |  |             return delete(url, params, header, defaultSSL, defaultHttpUser, defaultHttpPassword);
 | 
	
		
			
				|  |  |         } else {
 | 
	
		
			
				|  |  |             return delete(url, params, header, null, null, null);
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     public static HttpResponse delete(String url, Map<String, Object> params, Map<String, Object> header, SSLConnectionSocketFactory ssl) {
 | 
	
		
			
				|  |  |         return delete(url, params, header, ssl, defaultHttpUser, defaultHttpPassword);
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     public static HttpResponse delete(String url, Map<String, Object> params, Map<String, Object> header, SSLConnectionSocketFactory ssl, String user, String password) {
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         return HttpClientUtil.request("DELETE", url, params, header, ssl, user, password);
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     public static String getWebPage(String url) {
 | 
	
		
			
				|  |  |         String returnString = "";
 | 
	
		
			
				|  |  |         HttpResponse re = new HttpResponse();
 | 
	
		
			
				|  |  |         CloseableHttpResponse response = null;
 | 
	
		
			
				|  |  |         CloseableHttpClient httpclient = HttpClients.custom()
 | 
	
		
			
				|  |  |                 .setSSLSocketFactory(defaultSSL)
 | 
	
		
			
				|  |  |                 .build();
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         //设置请求信息
 | 
	
		
			
				|  |  |         try {
 | 
	
		
			
				|  |  |             HttpGet httpGet = new HttpGet(url);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             response = httpclient.execute(httpGet);
 | 
	
		
			
				|  |  |             String line;
 | 
	
		
			
				|  |  |             // 读取输入流的数据,并显示
 | 
	
		
			
				|  |  |             HttpEntity httpEntity = response.getEntity();
 | 
	
		
			
				|  |  |             Header header = response.getEntity().getContentEncoding();
 | 
	
		
			
				|  |  |             if (httpEntity.getContentLength() < 2147483647L) {            //EntityUtils无法处理ContentLength超过2147483647L的Entity
 | 
	
		
			
				|  |  |                 if (header != null && "gzip".equals(header.getValue())) {
 | 
	
		
			
				|  |  |                     returnString = EntityUtils.toString(new GzipDecompressingEntity(httpEntity));
 | 
	
		
			
				|  |  |                 } else {
 | 
	
		
			
				|  |  |                     returnString = EntityUtils.toString(httpEntity);
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |             } else {
 | 
	
		
			
				|  |  |                 InputStream in = httpEntity.getContent();
 | 
	
		
			
				|  |  |                 if (header != null && "gzip".equals(header.getValue())) {
 | 
	
		
			
				|  |  |                     returnString = unZip(in, ContentType.getOrDefault(httpEntity).getCharset().toString());
 | 
	
		
			
				|  |  |                 } else {
 | 
	
		
			
				|  |  |                     returnString = readInStreamToString(in, ContentType.getOrDefault(httpEntity).getCharset().toString());
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |                 if (in != null) {
 | 
	
		
			
				|  |  |                     in.close();
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         } catch (Exception e) {
 | 
	
		
			
				|  |  |             re.setStatusCode(201);
 | 
	
		
			
				|  |  |             re.setBody(e.getMessage());
 | 
	
		
			
				|  |  |             e.printStackTrace();
 | 
	
		
			
				|  |  |         } finally {
 | 
	
		
			
				|  |  |             try {
 | 
	
		
			
				|  |  |                 httpclient.close();
 | 
	
		
			
				|  |  |             } catch (IOException e) {
 | 
	
		
			
				|  |  |                 e.printStackTrace();
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         System.out.println(returnString);
 | 
	
		
			
				|  |  |         return returnString;
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 解压服务器返回的gzip流
 | 
	
		
			
				|  |  |      *
 | 
	
		
			
				|  |  |      * @param in      抓取返回的InputStream流
 | 
	
		
			
				|  |  |      * @param charSet 页面内容编码
 | 
	
		
			
				|  |  |      * @return 页面内容的String格式
 | 
	
		
			
				|  |  |      * @throws IOException
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     private static String unZip(InputStream in, String charSet) throws IOException {
 | 
	
		
			
				|  |  |         ByteArrayOutputStream baos = new ByteArrayOutputStream();
 | 
	
		
			
				|  |  |         GZIPInputStream gis = null;
 | 
	
		
			
				|  |  |         try {
 | 
	
		
			
				|  |  |             gis = new GZIPInputStream(in);
 | 
	
		
			
				|  |  |             byte[] _byte = new byte[1024];
 | 
	
		
			
				|  |  |             int len = 0;
 | 
	
		
			
				|  |  |             while ((len = gis.read(_byte)) != -1) {
 | 
	
		
			
				|  |  |                 baos.write(_byte, 0, len);
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |             String unzipString = new String(baos.toByteArray(), charSet);
 | 
	
		
			
				|  |  |             return unzipString;
 | 
	
		
			
				|  |  |         } finally {
 | 
	
		
			
				|  |  |             if (gis != null) {
 | 
	
		
			
				|  |  |                 gis.close();
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |             if (baos != null) {
 | 
	
		
			
				|  |  |                 baos.close();
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 读取InputStream流
 | 
	
		
			
				|  |  |      *
 | 
	
		
			
				|  |  |      * @param in InputStream流
 | 
	
		
			
				|  |  |      * @return 从流中读取的String
 | 
	
		
			
				|  |  |      * @throws IOException
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     private static String readInStreamToString(InputStream in, String charSet) throws IOException {
 | 
	
		
			
				|  |  |         StringBuilder str = new StringBuilder();
 | 
	
		
			
				|  |  |         String line;
 | 
	
		
			
				|  |  |         BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(in, charSet));
 | 
	
		
			
				|  |  |         while ((line = bufferedReader.readLine()) != null) {
 | 
	
		
			
				|  |  |             str.append(line);
 | 
	
		
			
				|  |  |             str.append("\n");
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         if (bufferedReader != null) {
 | 
	
		
			
				|  |  |             bufferedReader.close();
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         return str.toString();
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | }
 |