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

private static final int SET_CONNECTION_TIMEOUT = 5 * 1000;

private static final int SET_SOCKET_TIMEOUT = 20 * 1000;

public static HttpClient getNewHttpClient() {

try {

KeyStore trustStore = KeyStore.getInstance(KeyStore.getDefaultType());

trustStore.load(null, null);

SSLSocketFactory sf = new MySSLSocketFactory(trustStore);

sf.setHostnameVerifier(SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);

HttpParams params = new BasicHttpParams();

HttpConnectionParams.setConnectionTimeout(params, 10000);

HttpConnectionParams.setSoTimeout(params, 10000);

HttpProtocolParams.setVersion(params, HttpVersion.HTTP_1_1);

HttpProtocolParams.setContentCharset(params, HTTP.UTF_8);

SchemeRegistry registry = new SchemeRegistry();

registry.register(new Scheme("http", PlainSocketFactory.getSocketFactory(), 80));

registry.register(new Scheme("https", sf, 443));

ClientConnectionManager ccm = new ThreadSafeClientConnManager(params, registry);

HttpConnectionParams.setConnectionTimeout(params, SET_CONNECTION_TIMEOUT);

HttpConnectionParams.setSoTimeout(params, SET_SOCKET_TIMEOUT);

HttpClient client = new DefaultHttpClient(ccm, params);

return client;

} catch (Exception e) {

return new DefaultHttpClient();

}

}

下面是MySSLSocketFactory类

private static class MySSLSocketFactory extends SSLSocketFactory {

SSLContext sslContext = SSLContext.getInstance("TLS");

public MySSLSocketFactory(KeyStore truststore) throws NoSuchAlgorithmException,

KeyManagementException, KeyStoreException, UnrecoverableKeyException {

super(truststore);

TrustManager 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;

}

};

sslContext.init(null, new TrustManager[] { tm }, null);

}

@Override

public Socket createSocket(Socket socket, String host, int port, boolean autoClose)

throws IOException, UnknownHostException {

return sslContext.getSocketFactory().createSocket(socket, host, port, autoClose);

}

@Override

public Socket createSocket() throws IOException {

return sslContext.getSocketFactory().createSocket();

}

}

通过上面的方法获得HttpClient对象就可以请求Https了

android 请求https请求,Android 实现 HttpClient 请求Https相关推荐

  1. Android 使用自带的HttpClient进行https请求出现403的解决过程记录

    2019独角兽企业重金招聘Python工程师标准>>> 出现的过程 最近在用程序模拟一个web站的https登录,然后进行一些后续操作的小玩意.先使用java程序写测试代码,测试通过 ...

  2. Android 7.0解决抓取不到https请求的问题

    Android 7.0解决抓取不到https请求的问题 参考文章: (1)Android 7.0解决抓取不到https请求的问题 (2)https://www.cnblogs.com/meitian/ ...

  3. 【androidx86 5.1.1】Android HttpClient请求过程解析(上)

    Android HttpClient请求过程解析 前言:很久没有写源码解析相关的文章了,所谓"三天不写,上房揭瓦",这都仨月啦!前段时间忙着发版,经理有别的事情忙,就把管理发版的事 ...

  4. [转]android之Apache Http——向服务器发送请求的同时发送参数

    android之Apache Http--向服务器发送请求的同时发送参数 使用Get方法提交: 其他步骤与上一节的操作相符,只是在传送地址的时候发送参数的格式如下: //Sname和Sage是实际的数 ...

  5. Xamarin.Android之封装个简单的网络请求类

    http://doc.okbase.net/catcher1994/archive/220195.html Catcher8 2016/4/23 0:28:50 阅读(72) 评论(0) 一.前言 回 ...

  6. Android之封装好的异步网络请求框架

    1.简介  Android中网络请求一般使用Apache HTTP Client或者采用HttpURLConnection,但是直接使用这两个类库需要写大量的代码才能完成网络post和get请求,而使 ...

  7. Android笔记-使用okhttp3库发送http请求

    build.gradle新加: implementation 'com.squareup.okhttp3:okhttp:3.8.0' 在AndroidManifest.xml添加权限 <uses ...

  8. Android RxJava应用:优雅实现网络请求轮询(无条件)

    前言 Rxjava,由于其基于事件流的链式调用.逻辑简洁 & 使用简单的特点,深受各大 Android开发者的欢迎. 今天,我将为大家带来 Rxjava创建操作符的常见开发应用场景:轮询需求 ...

  9. Android OkHttp+Retrofit+Rxjava+Hilt 的网络请求封装

    今天给大家简单的封装一个现在比较流行的网络请求框架 第一步是导入我们所需要的依赖还需要在android {}闭包下添加一个 buildFeatures{viewBinding true } imple ...

  10. android 请求大量数据处理,Android大量数据加载—Paging的使用

    8种机械键盘轴体对比 本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选? Paging主要是用来结合RecyclerView进行使用的.它的作用是能够逐渐地.优雅地加载所需要加载的数据.也就是一 ...

最新文章

  1. UBC、谷歌联合Hinton等提出3D点云的无监督胶囊网络,多任务上实现SOTA | AI日报...
  2. 如何在 Linux 上永久挂载一个 Windows 共享
  3. mongodb自动备份脚本
  4. 漫步凸分析三——凸集代数
  5. 1333和1600能双通道吗_波音797何时到来?会成为A321XLR的竞争对手吗?
  6. mysql listagg函数 长度过长_MySQL索引是什么?怎么做?
  7. 用Windows Live Writer写51cto博客
  8. 关于iOS13 的一些适配
  9. 9 线性表-队列-链式存储
  10. 老板下死命令:必须将20M文件从30秒压缩到1秒,我是如何做到的?
  11. 漫谈 Clustering (4): Spectral Clustering
  12. showdoc + runapi —— 接口文档模板生成管理和接口调试工具
  13. Web测试和App测试区别
  14. python用tkinter做简易计算器实验报告_Python Tkinter实现简易计算器功能
  15. 视频vv播放量是指什么?怎样提升视频vv播放量?
  16. POI和Java Excel Api导入导出----详细到你不敢相信
  17. 经典美文诵读2 If I Were a Boy Again假如我又回到了童年
  18. 莫古力最新服务器,《最终幻想14》将调整现有人口平均化策略
  19. 最近在做一些改变,想听听你的意见
  20. 苏宁零售云,“动物凶猛”

热门文章

  1. 【路径规划】基于蚁群算法求解带容量距离约束的车辆路径问题(CDVRP)matlab代码
  2. NBIOT工作模式详解(BC26模组)
  3. 傅里叶变换与希尔伯特变换
  4. pyqt:使用qrc文件配置图片资源,生成py文件
  5. ES deeping pageing
  6. AlphaGo Zero算法简介
  7. 苹果春季发布会确认:AirPods2、Apple TV服务等来袭,3月25日见
  8. 矩阵键盘程序代码(基于STM32F103)
  9. 杭电1003 java_杭电ACM 1003题
  10. 【应用随机过程】01. 随机过程的基本概念