123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246 |
- package com.yihu.ehr.util.httpclient;
- import org.apache.http.NameValuePair;
- import org.apache.http.conn.ssl.SSLConnectionSocketFactory;
- import org.apache.http.conn.ssl.TrustSelfSignedStrategy;
- import org.apache.http.ssl.SSLContexts;
- 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 javax.net.ssl.SSLContext;
- import java.io.File;
- import java.util.List;
- import java.util.Map;
- import java.util.Properties;
- public class HttpHelper {
- private static String defaultPropertiesPath = "config/http.properties";
- private static SSLConnectionSocketFactory defaultSSL;
- private static String defaultHttpUser;
- private static String defaultHttpPassword;
- public static String defaultHttpUrl;
- public static String clientId;
- public static String clientKey;
- 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(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,
- new HopHostnameVerifier());
- }
- }
- catch (Exception e) {
- System.out.print(e.getMessage());
- }
- }
- /************************** Get方法 ******************************************/
- public static Response get(String url)
- {
- return get(url,null,null);
- }
- public static Response get(String url,Map<String,Object> params)
- {
- return get(url,params,null);
- }
- public static Response 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 Response 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 Response get(String url,Map<String,Object> params,Map<String,Object> header,SSLConnectionSocketFactory ssl)
- {
- return get(url, params, header, ssl, defaultHttpUser, defaultHttpPassword);
- }
- public static Response 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 Response post(String url)
- {
- return post(url, null, null);
- }
- public static Response post(String url,Map<String,Object> params)
- {
- return post(url, params, null);
- }
- public static Response 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 Response 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 Response post(String url,Map<String,Object> params,Map<String,Object> header,SSLConnectionSocketFactory ssl)
- {
- return post(url, params, header, ssl, defaultHttpUser, defaultHttpPassword);
- }
- public static Response 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 Response postFile(String url, List<NameValuePair> formParams, String filePath)
- {
- File file = new File(filePath);
- if(url.startsWith("https"))
- {
- return HttpClientUtil.postFile(url, file, formParams, defaultSSL,defaultHttpUser,defaultHttpPassword);
- }
- else{
- //默认http不走ssl和用户密码
- return HttpClientUtil.postFile(url, file, formParams, null,defaultHttpUser,defaultHttpPassword);
- }
- }
- public static Response postFile(String url, List<NameValuePair> formParams, File file)
- {
- if(url.startsWith("https"))
- {
- return HttpClientUtil.postFile(url, file, formParams, defaultSSL,defaultHttpUser,defaultHttpPassword);
- }
- else{
- //默认http不走ssl和用户密码
- return HttpClientUtil.postFile(url, file, formParams, null,defaultHttpUser,defaultHttpPassword);
- }
- }
- /************************** Put方法 ******************************************/
- public static Response put(String url)
- {
- return put(url, null, null);
- }
- public static Response put(String url,Map<String,Object> params)
- {
- return put(url, params, null);
- }
- public static Response 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 Response 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 Response put(String url,Map<String,Object> params,Map<String,Object> header,SSLConnectionSocketFactory ssl)
- {
- return put(url, params, header, ssl, defaultHttpUser, defaultHttpPassword);
- }
- public static Response 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 Response delete(String url)
- {
- return delete(url, null, null);
- }
- public static Response delete(String url,Map<String,Object> params)
- {
- return delete(url, params, null);
- }
- public static Response 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 Response 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 Response delete(String url,Map<String,Object> params,Map<String,Object> header,SSLConnectionSocketFactory ssl)
- {
- return delete(url, params, header, ssl, defaultHttpUser, defaultHttpPassword);
- }
- public static Response 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);
- }
- /**************************** 其他方法 ***************************************/
- }
|