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请求总结相关推荐

  1. android https请求证书过滤白名单,Android处理https请求的证书问题

    android中对部分站点发送https请求会报错,原因是该站点的证书时自定义的,而非官方的,android手机不信任其证书,为了解决这个问题,一般有两种解决方案 忽略证书验证 下载证书到本地,添加到 ...

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

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

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

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

  4. android 监听本机网络请求_fiddler如何抓取https请求实现fiddler手机抓包-证书安装失败100%解决...

    一.HTTP协议和HTTPS协议. (1) HTTPS协议=HTTP协议+SSL协议,默认端口:443 (2) HTTP协议(HyperText Transfer Protocol):超文本传输协议. ...

  5. Android——自建CA证书,实现https请求

    Android 使用https 协议请求客户端 server端操作 自己创建 CA 证书 拿自建CA 证书创建 server 端证书 创建 https 服务 Android客户端操作 创建项目并引入相 ...

  6. 在Mac下使用Charles抓取Android 7.0以上的Https请求

    文章目录 一.Charles 设置 1. 第一步 2. 第二步 3. 第三步 3. 第四步开启SSL代理功能 二.手机安装证书 三.APP 网络安全配置 四.另一种抓包方式   因为开发需求,需要抓取 ...

  7. 青花瓷抓包工具如何对Android手机https请求抓包及华为手机安装Charles证书方法详解!

    网上搜索了很多文档,这两篇是写的比较全面的,整个流程看完,你就会安装使用了! 参考:windows下使用Charles工具如何对android手机https请求进行抓包 参考:Android安装Cha ...

  8. 【Fiddler学习】Fiddler抓包HTTPS请求和手机抓包

    一.安装Fiddler 百度搜索:Fiddler抓包工具,然后安装即可. 然后打开Fiddler工具,打开浏览器随意输入任何网址,就可以在Fiddler看到抓包信息. 但是:默认情况下,Fiddler ...

  9. 深入理解 Android Https

    前言 大家都知道https相比http增加的是安全性. 怎么增加安全性呢? 就是加密和解密步骤. 下面来详细谈谈对https的理解和在Android中的使用. 两种加密 加密方式分两种,对称加密和非对 ...

最新文章

  1. 吴思教授:揭秘视觉信息处理的闭环
  2. mysql的altertable_mysqlaltertable修改表命令详细介绍
  3. springboot实现单点登录_什么是单点登录,php是如何实现单点登录的
  4. 7款免费原型设计工具
  5. C++对于文件的相关操作 创建、读写、删除代码
  6. Two Strings(CF-223B)
  7. (17)FPGA速度和面积互换原则
  8. Win10 安装 VS2015 失败解决办法
  9. kmeans不足举例(code)
  10. socket长连接server c语言,使用socket建立长连接
  11. android加载图片+背景,Android开发中ImageLoder加载网络图片时将图片设置为ImageView背景的方法...
  12. C语言热电阻温度查表,热电阻分度表如何看?是什么意思?
  13. 扣哒世界入选第33届国际信息学奥赛IOI专项赛
  14. win在哪打开java_win7系统打开java控制面板的操作方法
  15. 亚马逊运营技巧亚马逊 ASIN 和 SKU有什么作用?区别在哪里
  16. uni-app 微信小程序 分享功能 传参 接收 与 调试
  17. 我的世界皮肤站披风不加载或不更新问题
  18. Xftp 7(FTP/SFTP客户端) V7.0.0107 官方中文免费正式版(附文件+安装教程)
  19. windows 下端口转发 端口映射工具 passport
  20. 优麒麟服务器配置备忘

热门文章

  1. 苹果CMS V10大气橙色风格影视电影视频网站模板
  2. 超快恢复二极管的应用
  3. CUDA程序在VS运行时出现错误:E0035 #error 指令: -- incorrect inclusion of a cudart header flie的解决方法
  4. Unity3D美少女动作RPG游戏Action-RPG Demo
  5. 运行iOS开源项目的坑
  6. 人脸检测:MTCNN
  7. Spring+mybatis整合声明式事务异常之org.springframework.transaction.TransactionTimedOutException: Transaction ..
  8. 用python能制作毕业相册吗_如何制作毕业相册
  9. 鼠标侧键BetterTouchTool过期、设置问题解决
  10. 超详细的MES制造执行系统介绍——设备管理