主要流程是根据证书创建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()
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)