Android HTTPS请求总结
HttpClient
KeyStore keyStore; URI url = null; HttpGet req = null;
try{//获取asset文件夹下的证书AssetManager am = mContext.getAssets();InputStream ins = am.open("my.crt"); //证书格式转换 IE 工具->internet->内容->证书
try {//读取证书 CertificateFactory cerFactory = CertificateFactory.getInstance("X.509"); //证书工厂。此处指明证书的类型 Certificate cer = cerFactory.generateCertificate(ins);//创建一个证书库,并将证书导入证书库 keyStore = KeyStore.getInstance("PKCS12", "BC"); //问2 http://www.csdn.net/article/2015-01-06/2823434keyStore.load(null, null);keyStore.setCertificateEntry("trust", cer);} finally {ins.close();}//把咱的证书库作为信任证书库 SSLSocketFactory socketFactory = new SSLSocketFactory(keyStore);Scheme sch = new Scheme("https", socketFactory, 443);//完工 HttpClient mHttpClient = new DefaultHttpClient();mHttpClient.getConnectionManager().getSchemeRegistry().register(sch);url = new URI(gm.url+gm.param);//url = new URI(gm.url+gm.param); req = new HttpGet(url);HttpGet requestGet = new HttpGet(url);HttpResponse httpResponse = mHttpClient.execute(requestGet);if (httpResponse.getStatusLine().getStatusCode() == 200) {HttpEntity httpEntity = httpResponse.getEntity();result = EntityUtils.toString(httpEntity);result = result.replaceAll("\r", "");} }catch (Exception e){}
HttpsURLConnection
CertificateFactory cf = CertificateFactory.getInstance("X.509"); // From // https://www.washington.edu/itconnect/security/ca/load-der.crt InputStream caInput = mContext.getAssets().open("_.lianluo.com_bundle.crt"); //InputStream caInput = mContext.getAssets().open("nginx.crt"); Certificate ca; try {ca = cf.generateCertificate(caInput); } finally {caInput.close(); }// Create a KeyStore containing our trusted CAs String keyStoreType = KeyStore.getDefaultType(); KeyStore keyStore = KeyStore.getInstance(keyStoreType); keyStore.load(null, null); keyStore.setCertificateEntry("ca", ca);// Create a TrustManager that trusts the CAs in our KeyStore String tmfAlgorithm = TrustManagerFactory.getDefaultAlgorithm(); TrustManagerFactory tmf = TrustManagerFactory.getInstance(tmfAlgorithm); tmf.init(keyStore);// Create an SSLContext that uses our TrustManager SSLContext context = SSLContext.getInstance("TLS"); context.init(null, tmf.getTrustManagers(), null);URL url = new URL(path); HttpsURLConnection urlConnection = (HttpsURLConnection) url.openConnection(); // urlConnection.setConnectTimeout(5 * 1000); urlConnection.setRequestMethod("GET"); // urlConnection.setSSLSocketFactory(context.getSocketFactory());InputStream in = urlConnection.getInputStream();if(urlConnection.getResponseCode() == HttpURLConnection.HTTP_OK){return readStream(in); }
Android HTTPS请求总结相关推荐
- android https请求证书过滤白名单,Android处理https请求的证书问题
android中对部分站点发送https请求会报错,原因是该站点的证书时自定义的,而非官方的,android手机不信任其证书,为了解决这个问题,一般有两种解决方案 忽略证书验证 下载证书到本地,添加到 ...
- Android 7.0解决抓取不到https请求的问题
Android 7.0解决抓取不到https请求的问题 参考文章: (1)Android 7.0解决抓取不到https请求的问题 (2)https://www.cnblogs.com/meitian/ ...
- Android 使用自带的HttpClient进行https请求出现403的解决过程记录
2019独角兽企业重金招聘Python工程师标准>>> 出现的过程 最近在用程序模拟一个web站的https登录,然后进行一些后续操作的小玩意.先使用java程序写测试代码,测试通过 ...
- android 监听本机网络请求_fiddler如何抓取https请求实现fiddler手机抓包-证书安装失败100%解决...
一.HTTP协议和HTTPS协议. (1) HTTPS协议=HTTP协议+SSL协议,默认端口:443 (2) HTTP协议(HyperText Transfer Protocol):超文本传输协议. ...
- Android——自建CA证书,实现https请求
Android 使用https 协议请求客户端 server端操作 自己创建 CA 证书 拿自建CA 证书创建 server 端证书 创建 https 服务 Android客户端操作 创建项目并引入相 ...
- 在Mac下使用Charles抓取Android 7.0以上的Https请求
文章目录 一.Charles 设置 1. 第一步 2. 第二步 3. 第三步 3. 第四步开启SSL代理功能 二.手机安装证书 三.APP 网络安全配置 四.另一种抓包方式 因为开发需求,需要抓取 ...
- 青花瓷抓包工具如何对Android手机https请求抓包及华为手机安装Charles证书方法详解!
网上搜索了很多文档,这两篇是写的比较全面的,整个流程看完,你就会安装使用了! 参考:windows下使用Charles工具如何对android手机https请求进行抓包 参考:Android安装Cha ...
- 【Fiddler学习】Fiddler抓包HTTPS请求和手机抓包
一.安装Fiddler 百度搜索:Fiddler抓包工具,然后安装即可. 然后打开Fiddler工具,打开浏览器随意输入任何网址,就可以在Fiddler看到抓包信息. 但是:默认情况下,Fiddler ...
- 深入理解 Android Https
前言 大家都知道https相比http增加的是安全性. 怎么增加安全性呢? 就是加密和解密步骤. 下面来详细谈谈对https的理解和在Android中的使用. 两种加密 加密方式分两种,对称加密和非对 ...
最新文章
- 吴思教授:揭秘视觉信息处理的闭环
- mysql的altertable_mysqlaltertable修改表命令详细介绍
- springboot实现单点登录_什么是单点登录,php是如何实现单点登录的
- 7款免费原型设计工具
- C++对于文件的相关操作 创建、读写、删除代码
- Two Strings(CF-223B)
- (17)FPGA速度和面积互换原则
- Win10 安装 VS2015 失败解决办法
- kmeans不足举例(code)
- socket长连接server c语言,使用socket建立长连接
- android加载图片+背景,Android开发中ImageLoder加载网络图片时将图片设置为ImageView背景的方法...
- C语言热电阻温度查表,热电阻分度表如何看?是什么意思?
- 扣哒世界入选第33届国际信息学奥赛IOI专项赛
- win在哪打开java_win7系统打开java控制面板的操作方法
- 亚马逊运营技巧亚马逊 ASIN 和 SKU有什么作用?区别在哪里
- uni-app 微信小程序 分享功能 传参 接收 与 调试
- 我的世界皮肤站披风不加载或不更新问题
- Xftp 7(FTP/SFTP客户端) V7.0.0107 官方中文免费正式版(附文件+安装教程)
- windows 下端口转发 端口映射工具 passport
- 优麒麟服务器配置备忘
热门文章
- 苹果CMS V10大气橙色风格影视电影视频网站模板
- 超快恢复二极管的应用
- CUDA程序在VS运行时出现错误:E0035 #error 指令: -- incorrect inclusion of a cudart header flie的解决方法
- Unity3D美少女动作RPG游戏Action-RPG Demo
- 运行iOS开源项目的坑
- 人脸检测:MTCNN
- Spring+mybatis整合声明式事务异常之org.springframework.transaction.TransactionTimedOutException: Transaction ..
- 用python能制作毕业相册吗_如何制作毕业相册
- 鼠标侧键BetterTouchTool过期、设置问题解决
- 超详细的MES制造执行系统介绍——设备管理