• 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));
        }
    }
    
  • 相关阅读:
    Javascript的IE和Firefox兼容性汇编(转)
    JSP里request变量列表
    C#中的接口(转)
    寒羽对帝国的理解(通向高手之路)(转)
    怎样获得Sqlserver 2000得实例列表和运行在一个实例上得数据库列表(转)
    jsp文件上传的处理(转)
    用户不上你的网站的50个原因
    慈勤强的JFolder1.0版代码(JSP)
    管理常用SQL语句
    .net 取得访问的url
  • 原文地址:https://www.cnblogs.com/remainsu/p/java-https-gong-ju-lei.html
Copyright © 2020-2023  润新知