retrofit支持https

2017年开始IOS需要使用https协议,那么Android也要跟着改了,如果是证书是官方采购的那什么问题也就没有了,但是公司大多都会搭建测试环境,测试环境要想使用https(再省钱的条件下)就要自己签名一个非官方的证书,问题随之而来,Android怎么使用私有证书。


这里我用的网络请求框架是retrofit,其他的框架使用https应该也是大同小异

1.首先我们需要把证书加到我们的项目中,可能有些同学就要问我上哪拿到证书,这里提供两种方法

(1)配置服务器的运维人员肯定有的,你可以直接和他要


(2)我们可能在IE浏览打开需要的证书的https地址,这时会提示 “此网站的安全证书存在问题 ”,我们继续浏览,进入后点击地址栏的证书错误——查看证书——安装证书——当前用户——下一步——将所有证书放入下列存储——浏览——授信任的根证书——下一步——完成      这样我们就安装上证书了,下一步我们需要拿到证书,还是IE浏览器  设置——Internet选项——内容——证书——授信任的根证书颁发机构——选择你们的私有证书导出即可(.cer格式)。


2.证书拿到了,我们将证书放在项目的raw文件夹下


3.配置我们的retrofit,具体的配置见网址 http://www.jianshu.com/p/40cabafa9411,其中会用到 HttpsUtils 文章中也提供了下载地址https://github.com/hongyangAndroid/okhttp-utils ,根据文章的配置仍然会有点小问题,我这是提示 域名未被sha256值验证,所有我们需要在OkHttpClient.Builder 添加方法hostnameVerifier(org.apache.http.conn.ssl.SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER)大家注意里面的参数,我这里是允许所有的域名(简单粗暴)。  ok了,我们的配置就完成了,这时在请求https的接口是不会有异常的了。



4.我们请求接口没问题,但是https的图片可能还是不显示,我这里用的是universal—imageloader,由于用的是自签名证书所以需要做处理,网上有处理好的jar包可加载https的图片 http://download.csdn.net/download/wk843620202/9472469


好了,到这里私有证书的处理基本算是结束了,如果我们项目中有用到webView   记得在webView中加上信任证书的代码 ,写的可能不是很好有问题大家可以相互探讨。



评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值