如题,默认下,HttpClient是不能请求Https的,需要自己获取

  1. private static final int SET_CONNECTION_TIMEOUT = 5 * 1000;
  2. private static final int SET_SOCKET_TIMEOUT = 20 * 1000;
  3. public static HttpClient getNewHttpClient() {
  4. try {
  5. KeyStore trustStore = KeyStore.getInstance(KeyStore.getDefaultType());
  6. trustStore.load(null, null);
  7. SSLSocketFactory sf = new MySSLSocketFactory(trustStore);
  8. sf.setHostnameVerifier(SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);
  9. HttpParams params = new BasicHttpParams();
  10. HttpConnectionParams.setConnectionTimeout(params, 10000);
  11. HttpConnectionParams.setSoTimeout(params, 10000);
  12. HttpProtocolParams.setVersion(params, HttpVersion.HTTP_1_1);
  13. HttpProtocolParams.setContentCharset(params, HTTP.UTF_8);
  14. SchemeRegistry registry = new SchemeRegistry();
  15. registry.register(new Scheme("http", PlainSocketFactory.getSocketFactory(), 80));
  16. registry.register(new Scheme("https", sf, 443));
  17. ClientConnectionManager ccm = new ThreadSafeClientConnManager(params, registry);
  18. HttpConnectionParams.setConnectionTimeout(params, SET_CONNECTION_TIMEOUT);
  19. HttpConnectionParams.setSoTimeout(params, SET_SOCKET_TIMEOUT);
  20. HttpClient client = new DefaultHttpClient(ccm, params);
  21. return client;
  22. } catch (Exception e) {
  23. return new DefaultHttpClient();
  24. }
  25. }

下面是MySSLSocketFactory类

    1. private static class MySSLSocketFactory extends SSLSocketFactory {
    2. SSLContext sslContext = SSLContext.getInstance("TLS");
    3. public MySSLSocketFactory(KeyStore truststore) throws NoSuchAlgorithmException,
    4. KeyManagementException, KeyStoreException, UnrecoverableKeyException {
    5. super(truststore);
    6. TrustManager tm = new X509TrustManager() {
    7. public void checkClientTrusted(X509Certificate[] chain, String authType)
    8. throws CertificateException {
    9. }
    10. public void checkServerTrusted(X509Certificate[] chain, String authType)
    11. throws CertificateException {
    12. }
    13. public X509Certificate[] getAcceptedIssuers() {
    14. return null;
    15. }
    16. };
    17. sslContext.init(null, new TrustManager[] { tm }, null);
    18. }
    19. @Override
    20. public Socket createSocket(Socket socket, String host, int port, boolean autoClose)
    21. throws IOException, UnknownHostException {
    22. return sslContext.getSocketFactory().createSocket(socket, host, port, autoClose);
    23. }
    24. @Override
    25. public Socket createSocket() throws IOException {
    26. return sslContext.getSocketFactory().createSocket();
    27. }
    28. }

Android 实现 HttpClient 请求Https的更多相关文章

  1. Android使用HttpClient请求服务器代码优化版

    首先,我在前面的两篇博文中介绍了在Android中,除了使用java.net包下HttpUrlConnection的API访问HTTP服务之外,我们还可以换一种途径去完成工作.Android SDK附 ...

  2. android通过httpClient请求获取JSON数据并且解析

    使用.net创建一个ashx文件,并response.write  json格式 public void ProcessRequest(HttpContext context) { context.R ...

  3. [转]java 关于httpclient 请求https (如何绕过证书验证)

    原文:http://www.blogjava.net/hector/archive/2012/10/23/390073.html 第一种方法,适用于httpclient4.X 里边有get和post两 ...

  4. 关于httpclient 请求https (如何绕过证书验证)

    第一种方法,适用于httpclient4.X 里边有get和post两种方法供你发送请求使用.导入证书发送请求的在这里就不说了,网上到处都是 import java.io.BufferedReader ...

  5. android http post 请求与 json字符串

    一.目标 android客户端发送一个json格式的http的请求,期望得到服务端的一个json反馈. 1. 客户端发送的json格式为: {"data" : "valu ...

  6. android httpClient 支持HTTPS的2种处理方式

    摘自: http://www.kankanews.com/ICkengine/archives/9634.shtml 项目中Android https或http请求地址重定向为HTTPS的地址,相信很 ...

  7. 使用HttpClient发送HTTPS请求以及配置Tomcat支持SSL

    这里使用的是HttpComponents-Client-4.1.2 package com.jadyer.util; import java.io.File; import java.io.FileI ...

  8. 用HttpClient发送HTTPS请求报SSLException: Certificate for <域名> doesn't match any of the subject alternative names问题的解决

    最近用server酱-PushBear做消息自动推送,用apache HttpClient做https的get请求,但是代码上到服务器端就报javax.net.ssl.SSLException: Ce ...

  9. Android okHttp网络请求之Get/Post请求

    前言: 之前项目中一直使用的Xutils开源框架,从xutils 2.1.5版本使用到最近的xutils 3.0,使用起来也是蛮方便的,只不过最近想着完善一下app中使用的开源框架,由于Xutils里 ...

随机推荐

  1. Handler Thread 内部类引起内存泄露分析

    非静态内部类引起内存泄漏的原因 内部类的实现其实是通过编译器的语法糖(Syntactic sugar)实现的,通过生成相应的子类即以OutClassName$InteriorClassName命名的C ...

  2. C#中HTML和UBB互相转换的代码

    C#中HTML和UBB互相转换的代码html转UBB的还不是很完美,有空修改,一些代码来自百度谷歌 private string DoHtmlToUBB(string _Html)        {  ...

  3. Transform开发cube模型权限处理之不同用户数据的过滤

    ========================此文不再详细的说transform的开发过程====================================================== ...

  4. 1-2Html与CSS的关系

    Html和CSS的关系 基于微信的后台开发须要掌握的基础知识包括有:HTML.CSS.JavaScript语言. 以下我们就来了解下这三门技术都是用来实现什么的: 1. HTML是网页内容的载体.内容 ...

  5. [转载]C++中处理XML文件

      写Unmanaged Code在.NET时代成为一种很悲惨的事,当你需要处理XML文件时,这种感觉会变得尤其强烈.FCL中的System.XML多简单啊,连Steve Ballmer都知道怎么用. ...

  6. Cocos2d-x 粒子编辑器 Particle Studio 争做 Windows Particle Designer 源代码

    1.Particle Studio介绍 非常早发现一款粒子编辑器叫Particle Designer,不知道为什么它没有Windows版本号. 所以我就在Windows下基于Qt做了一个粒子编辑器.之 ...

  7. 使用mysql 统计函数 结果为null时返回值改为0

    SELECT COALESCE(SUM(total),0)  FROM test_table

  8. 笔记本样式的EditText控件(每行均带下划虚线)

    package com.zongyi.trip.ui; import com.zongyi.trip.R; import android.annotation.SuppressLint; import ...

  9. 在MyEclipse中设置jsp页面为默认utf-8编码(转)

    http://www.cnblogs.com/xdp-gacl/p/3496161.html 在MyEclispe中创建Jsp页面,Jsp页面的默认编码是“ISO-8859-1”,如下图所示: 在这种 ...

  10. JavaBean(web基础学习笔记十二)

    一.JavaBean简介 JavaBean是使用Java语言开发的一个可重用的组件,在JSP的开发中可以使用JavaBean减少重复代码,使整个JSP代码的开发更简洁.JSP搭配JavaBean来使用 ...