zoukankan      html  css  js  c++  java
  • HttpClient_httpclient中使用HTTPS的方法

    import javax.net.ssl.SSLContext;
    
    import javax.net.ssl.TrustManager;
    import javax.net.ssl.X509TrustManager;
    import java.security.cert.CertificateException;
    import java.security.cert.X509Certificate;
    import org.apache.http.client.ClientProtocolException;
    import org.apache.http.client.HttpClient;
    import org.apache.http.client.ResponseHandler;
    import org.apache.http.client.methods.HttpGet;
    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.scheme.SchemeSocketFactory;
    import org.apache.http.conn.ssl.SSLSocketFactory;
    import org.apache.http.impl.client.BasicResponseHandler;
    import org.apache.http.impl.client.ClientParamsStack;
    import org.apache.http.impl.client.DefaultHttpClient;
    import org.apache.http.params.DefaultedHttpParams;
    import org.apache.http.params.HttpParams;
    
    public class HttpClientTest {
    
        public static void main(String args[]) {
    
            try {
    
                HttpClient httpclient = new DefaultHttpClient();
                            //Secure Protocol implementation.
                SSLContext ctx = SSLContext.getInstance("SSL");
                            //Implementation of a trust manager for X509 certificates
                X509TrustManager tm = new X509TrustManager() {
    
                    public void checkClientTrusted(X509Certificate[] xcs,
                            String string) throws CertificateException {
    
                    }
    
                    public void checkServerTrusted(X509Certificate[] xcs,
                            String string) throws CertificateException {
                    }
    
                    public X509Certificate[] getAcceptedIssuers() {
                        return null;
                    }
                };
                ctx.init(null, new TrustManager[] { tm }, null);
                SSLSocketFactory ssf = new SSLSocketFactory(ctx);
    
                ClientConnectionManager ccm = httpclient.getConnectionManager();
                            //register https protocol in httpclient's scheme registry
                SchemeRegistry sr = ccm.getSchemeRegistry();
                sr.register(new Scheme("https", 443, ssf));
    
                HttpGet httpget = new HttpGet("");
                HttpParams params = httpclient.getParams();
    
                params.setParameter("param1", "paramValue1");
    
                httpget.setParams(params);
                System.out.println("REQUEST:" + httpget.getURI());
                ResponseHandler responseHandler = new BasicResponseHandler();
                String responseBody;
    
                responseBody = httpclient.execute(httpget, responseHandler);
    
                System.out.println(responseBody);
    
                // Create a response handler
    
            } catch (NoSuchAlgorithmException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (ClientProtocolException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (Exception ex) {
                ex.printStackTrace();
    
            }
        }
    }
  • 相关阅读:
    codeforces 169 div2 C
    poj 1062(最短路)
    sgu 118
    sgu 101
    poj 2446二分图匹配
    ural 1129 (求数据)
    C#中抽象类和接口的区别(转)
    在.net(C# or vb.net)中,Appplication.Exit 还是 Form.Close有什么不同?
    一道爱出的题目,就是前面两个数相加 用递归方法实现
    C#冒泡排序
  • 原文地址:https://www.cnblogs.com/gisblogs/p/4626367.html
Copyright © 2011-2022 走看看