|
@ -0,0 +1,246 @@
|
|
|
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);
|
|
|
}
|
|
|
|
|
|
/**************************** 其他方法 ***************************************/
|
|
|
|
|
|
|
|
|
}
|