Android 实现 HttpClient 请求Https

Android Https请求详细demo(经过测试可用) Android Https详细请求全方案实现,包括HttpUrlConnection及HttpClient方式实现指定证书及信任所有的实现,以下代码都经过详细测试,可以直接使用。 Java代码 package com.example.httpstest; import java.io.BufferedReader; import java.io.IOException; im 阅读详情

如题,默认下,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了


HttpClient 支持https 绕过SSLPeerUnverifiedException异常 最近遇到一个问题,出于安全考虑,需要将http改为https,然后发现HttpClient 报ssl验证不通过异常。于是着手处理。 好的废话不多说,上干货 1、思路,既然SSL证书校验失败,那么干脆改为允许所有主机校验(还有一种思路是把证书放到assets中) 2、关于http、https的详细说明,菜鸟还是老鸟都可以参考http://www.cnblogs.com/P_Chou/archi... 阅读详情

相关推荐

Android实现HTTPS请求的HttpClient编程

在Android 6.0及以上的版本中,系统不再默认支持使用HttpClient,所以我们需要使用HttpClient Android库提供的兼容版。值得注意的是,在Android 9及以上的版本中,默认不允许在主线程中进行网络请求,所以在实际开发中,建议将网络请求放在异步任务或者单独的线程中进行。通过以上步骤,我们可以在Android应用程序中使用HttpClient库来实现HTTPS请求。以上代码中,我们使用HttpGet对象来创建一个GET请求,发送给指定的URL。

2301_79326254的博客 440

Android之HttpClient的详解

——HttpClient        android5.0之前常用        android5.0之后,被HttpURLConnecetion替代        android6.0完全被舍弃        HttpClient是Apache提供的Http网络访问接口。完成的功能和HttpURLConnection几乎一模一样的效果,但两者的用法有很大的差别。       在一般情

重心开始,重新开始 2376

Android网络通信:HttpClient与HttpsUrlConnection深度剖析

配置HttpClient时,可以自定义连接参数来满足特定需求。这些参数包括连接超时、读取超时以及连接保持活动状态的时间。// 自定义信任证书策略// 创建SSL连接套接字工厂,使用自定义的SSLContext和允许所有主机名验证器null,// 创建连接管理器并注册SSL连接套接字工厂.build()// 创建HttpClient实例,配置连接参数.build();// 使用自定义HttpClient发送请求// 关闭HttpClient释放资源。

weixin_33431149的博客 1155

Android 之 HTTP请求方式:HttpClient

HttpClient 用于接收/发送Http请求/响应,但不缓存服务器响应,不执行HTML页面潜入的JS代码,不会对页面内容 进行任何解析,处理!其实关于HttpClient的例子有很多,比如笔者曾经用它来抓学校教务系统上学生的课程表: 这就涉及到Cookie,模拟登陆的东西,说到抓数据(爬虫),一般我们是搭配着JSoup来解析 抓到数据的,有兴趣可以自己查阅相关资料,这里贴下笔者毕设app里获取网页部分的关键 代码!// 获取响应的cookie值。// 设置Post提交的头信息的参数。

leyang0910的博客 1001

Setup&Hold互卡问题和Useful Skew的影响

setup和hold互卡问题分析

godping的博客 5092

PX4飞控与MAVROS实战:从零搭建无人机ROS通信环境(附常见报错解决)

本文详细介绍了如何从零搭建PX4飞控与ROS的通信环境,重点解析了MAVROS的安装、硬件连接、串口权限配置以及坐标系转换等核心步骤。针对GeographicLib数据下载失败、串口权限不足等常见报错提供了实用解决方案,并附有Offboard模式控制的代码示例,帮助开发者快速建立稳定的无人机ROS开发环境。

dapp9builder的博客 335

Android HTTP协议请求网络(二)之HttpClient方式

 Android HTTP协议请求网络(一)之认识探索Android HTTP协议请求网络(三)之HttpURLConnection方式githup练习demo地址:https://github.com/aiyangtianci/NetworkRequestDemo一、基础介绍:1、HttpClient是Apache开源组织提供的HTTP网络访问接口(一个开源的项目),从名字上就可以看出,它是一个...

csdn_aiyang的博客 5321

Qt Creator菜单栏消失的终极修复指南:从快捷键冲突到设置恢复

本文详细解析了Qt Creator菜单栏消失的常见原因及修复方法,包括快捷键冲突排查、配置文件重置和界面模式切换等解决方案。特别针对Qt开发者遇到的菜单栏显示问题,提供了从简单快捷键操作到深度配置修改的全方位指南,帮助用户快速恢复Qt Creator的正常使用。

weixin_27240351的博客 338

Android --- 网络请求

通常在 Android 中进行网络连接一般使用 Scoket 和HTTP,HTTP 请求方式比 Scoket 多。HTTP 请求一般采用原生的 HttpClient 和 HttpUrlConnection 的两种网络访问方式(系统自带的)。

weixin_43244083的博客 2447

SpotBugs使用

spotbugs命令行参数解析

javajingling的专栏 2946

STM32G070xx将Flash页分块方式存储,固定数据块存储,实现一次擦除多次写入

本例程使用STM32G070xx芯片,Flash大小128KB,Flash每页(2048字节)写满后再擦除。操作存储区分为64块,每块32字节,即写满64次擦除一次;标定存储区分为16块,每块128字节,即写满16次擦除一次,每个存储区的块都有各自的头部标记

RaphaelCeo的博客 1544

android 使用https请求

今年年初就已经吵吵着要把大部分的服务端由http转成https了,但是由于很多公司还是比较懒得,而且有的公司可能不想再多掏一些钱去对自己的网址加入CA认证,所以这件事就一直拖下来了,但是随着用户数据越来越多暴露在一些不法分子眼前,所以信息安全越来越被用户重视,一些金融、贷款公司已经开始使用这种技术了,今天就来讲解一下android上面的通过https对服务器进行请求。 首先先来解答一下疑惑,我们

JerryWu145的专栏 1万+

统信UOS V20 安装mysql5.7.42详细教程

到bin/下,执行下面的命令,初始化mysql服务信息,得到数据库的初始密码,实际如果目录不一样记得换成自己的目录。下载后通过远程将安装包上传至服务器,我这里将安装包上传至/usr/local/mysql 下。ps:这时候如果还是不能远程访问的话,可能是防火墙的原因,命令行执行以下命令即可。再次登录,发现缺少 libtinfo.so.5文件,再次建立软连接。登录,发现报错,提示缺少libncurses.so.5文件,使用。创建 /var/lib/ 下mysql目录。登录成功,修改密码,设置远程访问。

为谁伫立在风中 1万+

安卓C语言 HTTP,Android 实现 HttpClient 请求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 HttpCl...

weixin_28876083的博客 337

【数据集】基于ubESTARFM法的100m 地温LST数据集(澳大利亚)

【数据集】基于ubESTARFM法的100m 地温LST数据集(澳大利亚)

WW、forever的博客 265

【打卡帖】7日玩转ESP32——(第4日) 串口的输入输出

【福利帖】7日玩转ESP32——(第4日) 串口的输入输出

1374

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 {...

weixin_28888459的博客 484

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

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

http://www.cnblogs.com/P_Chou/archive/2010/12/27/https-ssl-certification.html  浅谈https\ssl\数字证书 http://my.oschina.net/blackylin/blog/144136   android httpClient 支持HTTPS的2种处理方式

Levin的专栏 1098

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

关于android解析https网址信息

之前在做一个app,里面的网址信息都是https开头的,普通http方式无法解析 Android Https详细请求全方案实现,包括HttpUrlConnection及HttpClient方式实现指定证书及信任所有的实现,不多说了,以下代码都经过详细测试,可以直接使用。      package com.example.httpstest; import java.io.Buffere

erone的专栏 1317

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

android如何使用https请求,【安卓】使用SSL证书进行https请求

笔记:https,​安全的超文本传输协议,使用普通的http请求将无法成功,此时就要用到证书,将证书放至assets(可以打包时放入,也可以通过请求获取下载地址下载,视情况而定),再通过工厂set至HttpClient,以下为代码:public class TrustAllSSLSocketFactory extendsSSLSocketFactory {private static TrustA...

weixin_34515601的博客 1003

android httpClient 支持HTTPS的处理方式

欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦: Markdown和扩展Markdown简洁的语法 代码块高亮 图片链接和图片上传 LaTex数学公式 UML序列图和流程图 离线写博客 导入导出Markdown文件 丰富的快捷键 快捷键 加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl

用心去专研技术,用代码改变世界__ Mr.Wang 745

Android Https请求详细demo

转载于:http://gjican.iteye.com/blog/2153177  Android Https详细请求全方案实现,包括HttpUrlConnection及HttpClient方式实现指定证书及信任所有的实现,不多说了,以下代码都经过详细测试,可以直接使用。      Java代码   package com.example.https

飞翔的熊blabla 1445

开源库android-async-http添加https请求方式

这几天由于项目要求将http转换成https请求,要求不做证书验证。而我使用的是loopj的开源库android-async-http来完成服务器请求,但是此库并未有相关https的示例,故自己动手丰衣足食。 经过一番摸索,现记录如下: 封装了一个httpclient帮助类,以此获取一个DefaultHttpClient的示例对象。 [java] view pla

u012426327的专栏 857
上一篇: Button 中实现点击前后字体颜色的变化
下一篇: 单例模式
HeyNine
博客等级 码龄14年 33粉丝 13原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值