基于okHttpClient实现证书绑定

基于okHttpClient实现证书绑定,第1张

最近跟华为做合作项目,主要是我这边提供sdk集成到华为的app里,对方要求sdk与我方服务器的数据通信必须使用证书绑定,这里简单记录一下流程。

主要流程是根据证书创建trustmanager,并以此创建SslSocketFactory对象设置到okhttpclient上,同时要记得配置hostnameVerifier,两者前者负责检验证书,后者负责检验域名。目前测试下来会对所有使用该client的https网络请求做证书验证,如何在同一个client下只筛选特定域名请求暂时不知道如何实现,不过也已经满足功能需求。中间尝试跟了一下证书验证的源码,发现实际实现并不在andorid的jar包里,后续有机会再跟。

<pre t="code" l="java">

final Request.Builder builder = new Request.Builder().url(url)

builder.addHeader(key,value) //将请求头以键值对形式添加,可添加多个请求头

final Request request = builder.build()

final OkHttpClient client = new OkHttpClient.Builder()

.readTimeout(30, TimeUnit.SECONDS)

.connectTimeout(10, TimeUnit.SECONDS)

.writeTimeout(60, TimeUnit.SECONDS)

.build()//设置各种超时时间

final Call call = client.newCall(request)

new Thread(new Runnable() {

@Override

public void run() {

try {

Response response = call.execute()

if (response != null) {

} else {

}

} catch (IOException e) {

e.printStackTrace()

}

}

}).start()


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11340401.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-15
下一篇 2023-05-15

发表评论

登录后才能评论

评论列表(0条)

保存