import java.security.cert.CertificateException;
import java.security.cert.X509Certificate;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import javax.net.ssl.SSLContext;
import javax.net.ssl.TrustManager;
import javax.net.ssl.X509TrustManager;
import org.apache.http.NameValuePair;
import org.apache.http.client.HttpClient;
import org.apache.http.client.ResponseHandler;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.client.utils.URLEncodedUtils;
import org.apache.http.conn.scheme.Scheme;
import org.apache.http.conn.ssl.SSLSocketFactory;
import org.apache.http.impl.client.BasicResponseHandler;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
public class HttpUtil {
//SSL POST
public static String securePost(String url, Map<String, Object> params, String encoding){
DefaultHttpClient httpclient = new DefaultHttpClient();
X509TrustManager easyTrustManager = new X509TrustManager() {
public X509Certificate[] getAcceptedIssuers() {
return null;
}
public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException {}
public void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException {}
};
try{
SSLContext sslcontext = SSLContext.getInstance("SSL");
sslcontext.init(null, new TrustManager[] { easyTrustManager }, null);
//SSLSocketFactory socketFactory = new SSLSocketFactory(sslcontext,
//SSLSocketFactory.STRICT_HOSTNAME_VERIFIER);
SSLSocketFactory socketFactory = new SSLSocketFactory(sslcontext,
SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);
Scheme sch = new Scheme("https", 443, socketFactory);
httpclient.getConnectionManager().getSchemeRegistry().register(sch);
HttpPost post = new HttpPost(url);
StaticDebugLog.info("POST : " + post.getURI());
List<NameValuePair> paramList = convertParam(params);
post.setEntity(new UrlEncodedFormEntity(paramList, encoding));
ResponseHandler<String> rh = new BasicResponseHandler();
return httpclient.execute(post, rh);
}catch(Exception e){
e.getMessage();
StaticDebugLog.error(" Error_Message : "+ e.getMessage());
}finally{
httpclient.getConnectionManager().shutdown();
}
return null;
}
public static String securePost(String url, Map<String, Object> params) {
return securePost(url, params, "UTF-8");
}
public static String post(String url, Map<String, Object> params, String encoding){
HttpClient client = new DefaultHttpClient();
try{
HttpPost post = new HttpPost(url);
StaticDebugLog.info("POST : " + post.getURI());
List<NameValuePair> paramList = convertParam(params);
post.setEntity(new UrlEncodedFormEntity(paramList, encoding));
ResponseHandler<String> rh = new BasicResponseHandler();
return client.execute(post, rh);
}catch(Exception e){
e.getMessage();
StaticDebugLog.error(" Error_Message : "+ e.getMessage());
}finally{
client.getConnectionManager().shutdown();
}
return null;
}
public static String post(String url, Map<String, Object> params){
return post(url, params, "UTF-8");
}
public static String get(String url, Map<String, Object> params, String encoding){
HttpClient client = new DefaultHttpClient();
try{
List<NameValuePair> paramList = convertParam(params);
HttpGet get = new HttpGet(url+" "+URLEncodedUtils.format(paramList, encoding));
StaticDebugLog.info("GET : " + get.getURI());
ResponseHandler<String> rh = new BasicResponseHandler();
return client.execute(get, rh);
}catch(Exception e){
e.getMessage();
}finally{
client.getConnectionManager().shutdown();
}
return null;
}
public static String get(String url, Map<String, Object> params){
return get(url, params, "UTF-8");
}
private static List<NameValuePair> convertParam(Map<String, Object> params){
String key = null;
List<NameValuePair> paramList = new ArrayList<NameValuePair>();
Iterator<String> keys = params.keySet().iterator();
while(keys.hasNext()){
key = keys.next();
paramList.add(new BasicNameValuePair(key, params.get(key).toString()));
}
return paramList;
}
}
하기