Android使用OkHttp请求自签名的https网站

 我来答
天罗网17
2022-07-01 · TA获得超过6191个赞
知道小有建树答主
回答量:306
采纳率:100%
帮助的人:73.3万
展开全部

很多公司考虑到安全问题,项目中都采用https加密协议进行数据传输。但是一些公司又不想花一笔钱去CA申请证书,所以就采用自签名的证书。

OkHttp默认是可以访问通过CA认证的HTTPS链接,例如百度首页也是https链接( https://www.baidu.com/ )。 但是如果是你们公司自签名(即自己用keytool生成的证书,而不是采用通过CA认证的证书)的服务器,OkHttp是无法访问的,例如访问12306网站( https://kyfw.12306.cn/otn/ ) ,会报如下错误:

HTTPS在传输数据之前需要客户端(浏览器)与服务端(网站)之间进行一次握手,在握手过程中将确立双方加密传输数据的密码信息。握手过程的简单描述如下:

握手过程中如果有任何错误,都会使加密连接断开,从而阻止了隐私信息的传输。

以下我们使用12306网站为例

注意:别忘了加权限和依赖okhttp库

Demo地址: https://github.com/wildma/okhttps
参考博客: http://blog.csdn.Net/lmj623565791/article/details/48129405

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式