zoukankan      html  css  js  c++  java
  • java Https工具类

    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 java.util.Map.Entry;
    
    import javax.net.ssl.SSLContext;
    import javax.net.ssl.TrustManager;
    import javax.net.ssl.X509TrustManager;
    
    import org.apache.http.HttpEntity;
    import org.apache.http.HttpResponse;
    import org.apache.http.NameValuePair;
    import org.apache.http.client.HttpClient;
    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.conn.ClientConnectionManager;
    import org.apache.http.conn.scheme.Scheme;
    import org.apache.http.conn.scheme.SchemeRegistry;
    import org.apache.http.conn.ssl.SSLSocketFactory;
    import org.apache.http.impl.client.DefaultHttpClient;
    import org.apache.http.message.BasicNameValuePair;
    import org.apache.http.util.EntityUtils;
    
    /**
     * https工具类
     * 
     * @author remainsu
     * 2019-05-05
     */
    public class HttpsUtil {
        
        /**
         * post方式访问
         * @param url 路径
         * @param map 参数
         * @return
         */
        public String httpsPost(String url, Map<String, String> map) {
            
            String charset = "UTF-8";
            HttpClient httpClient = null;
            HttpPost httpPost = null;
            String result = null;
            
            try {
                httpClient = new SSLClient();
                httpPost = new HttpPost(url);
                //设置参数
                List<NameValuePair> list = new ArrayList<NameValuePair>();
                Iterator iterator = map.entrySet().iterator();
                while (iterator.hasNext()) {
                    Entry<String, String> elem = (Entry<String, String>) iterator.next();
                    list.add(new BasicNameValuePair(elem.getKey(), elem.getValue()));
                }
                if (list.size() > 0) {
                    UrlEncodedFormEntity entity = new UrlEncodedFormEntity(list, charset);
                    httpPost.setEntity(entity);
                }
                HttpResponse response = httpClient.execute(httpPost);
                if (response != null) {
                    HttpEntity resEntity = response.getEntity();
                    if (resEntity != null) {
                        result = EntityUtils.toString(resEntity, charset);
                    }
                }
            } catch (Exception ex) {
                ex.printStackTrace();
            }
            return result;
        }
        
        /**
         * get方式访问(如果有参数直接 ?xx&yy&zz 的方式即可)
         * @param url
         * @return
         */
        public String httpsGet(String url) {
       
            String charset = "UTF-8";
            HttpClient httpClient = null;
            HttpGet httpGet= null;
            String result = null;
            
            try {
                httpClient = new SSLClient();
                httpGet = new HttpGet(url);
                
                HttpResponse response = httpClient.execute(httpGet);
                if(response != null){
                    HttpEntity resEntity = response.getEntity();
                    if(resEntity != null){
                        result = EntityUtils.toString(resEntity,charset);
                    }
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
            
            return result;
        }
    }
    
    class SSLClient extends DefaultHttpClient {
        //用于进行Https请求的HttpClient
        public SSLClient() throws Exception {
            super();
            SSLContext ctx = SSLContext.getInstance("TLS");
            X509TrustManager tm = new X509TrustManager() {
                
                public void checkClientTrusted(X509Certificate[] chain,String authType) throws CertificateException { }
                
                public void checkServerTrusted(X509Certificate[] chain,String authType) throws CertificateException { }
                
                public X509Certificate[] getAcceptedIssuers() {return null; }
            };
            ctx.init(null, new TrustManager[]{tm}, null);
            SSLSocketFactory ssf = new SSLSocketFactory(ctx, SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);
            ClientConnectionManager ccm = this.getConnectionManager();
            SchemeRegistry sr = ccm.getSchemeRegistry();
            sr.register(new Scheme("https", 443, ssf));
        }
    }
    
  • 相关阅读:
    今日计划
    今日计划
    个人品质
    翻译 《Why Indy?》计划&进度表
    今日计划
    一粒老鼠屎
    开两本字典聊天的感觉
    ObjectiveC初学指南
    todo格式定义
    制作TortoiseSVN最新版本的中文DLL(转)
  • 原文地址:https://www.cnblogs.com/remainsu/p/java-https-gong-ju-lei.html
Copyright © 2011-2022 走看看