android 请求https请求,Android 实现 HttpClient 请求Https
如题,默认下,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相关推荐
- Android 使用自带的HttpClient进行https请求出现403的解决过程记录
2019独角兽企业重金招聘Python工程师标准>>> 出现的过程 最近在用程序模拟一个web站的https登录,然后进行一些后续操作的小玩意.先使用java程序写测试代码,测试通过 ...
- Android 7.0解决抓取不到https请求的问题
Android 7.0解决抓取不到https请求的问题 参考文章: (1)Android 7.0解决抓取不到https请求的问题 (2)https://www.cnblogs.com/meitian/ ...
- 【androidx86 5.1.1】Android HttpClient请求过程解析(上)
Android HttpClient请求过程解析 前言:很久没有写源码解析相关的文章了,所谓"三天不写,上房揭瓦",这都仨月啦!前段时间忙着发版,经理有别的事情忙,就把管理发版的事 ...
- [转]android之Apache Http——向服务器发送请求的同时发送参数
android之Apache Http--向服务器发送请求的同时发送参数 使用Get方法提交: 其他步骤与上一节的操作相符,只是在传送地址的时候发送参数的格式如下: //Sname和Sage是实际的数 ...
- Xamarin.Android之封装个简单的网络请求类
http://doc.okbase.net/catcher1994/archive/220195.html Catcher8 2016/4/23 0:28:50 阅读(72) 评论(0) 一.前言 回 ...
- Android之封装好的异步网络请求框架
1.简介 Android中网络请求一般使用Apache HTTP Client或者采用HttpURLConnection,但是直接使用这两个类库需要写大量的代码才能完成网络post和get请求,而使 ...
- Android笔记-使用okhttp3库发送http请求
build.gradle新加: implementation 'com.squareup.okhttp3:okhttp:3.8.0' 在AndroidManifest.xml添加权限 <uses ...
- Android RxJava应用:优雅实现网络请求轮询(无条件)
前言 Rxjava,由于其基于事件流的链式调用.逻辑简洁 & 使用简单的特点,深受各大 Android开发者的欢迎. 今天,我将为大家带来 Rxjava创建操作符的常见开发应用场景:轮询需求 ...
- Android OkHttp+Retrofit+Rxjava+Hilt 的网络请求封装
今天给大家简单的封装一个现在比较流行的网络请求框架 第一步是导入我们所需要的依赖还需要在android {}闭包下添加一个 buildFeatures{viewBinding true } imple ...
- android 请求大量数据处理,Android大量数据加载—Paging的使用
8种机械键盘轴体对比 本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选? Paging主要是用来结合RecyclerView进行使用的.它的作用是能够逐渐地.优雅地加载所需要加载的数据.也就是一 ...
最新文章
- UBC、谷歌联合Hinton等提出3D点云的无监督胶囊网络,多任务上实现SOTA | AI日报...
- 如何在 Linux 上永久挂载一个 Windows 共享
- mongodb自动备份脚本
- 漫步凸分析三——凸集代数
- 1333和1600能双通道吗_波音797何时到来?会成为A321XLR的竞争对手吗?
- mysql listagg函数 长度过长_MySQL索引是什么?怎么做?
- 用Windows Live Writer写51cto博客
- 关于iOS13 的一些适配
- 9 线性表-队列-链式存储
- 老板下死命令:必须将20M文件从30秒压缩到1秒,我是如何做到的?
- 漫谈 Clustering (4): Spectral Clustering
- showdoc + runapi —— 接口文档模板生成管理和接口调试工具
- Web测试和App测试区别
- python用tkinter做简易计算器实验报告_Python Tkinter实现简易计算器功能
- 视频vv播放量是指什么?怎样提升视频vv播放量?
- POI和Java Excel Api导入导出----详细到你不敢相信
- 经典美文诵读2 If I Were a Boy Again假如我又回到了童年
- 莫古力最新服务器,《最终幻想14》将调整现有人口平均化策略
- 最近在做一些改变,想听听你的意见
- 苏宁零售云,“动物凶猛”