Okhttp框架耳熟能祥了,現在還有了okgo之類的二次開發框架,對於初學者來說Retrofit+rxjava之類的東西,代碼也很多了,也沒什麼新意了。今天來講講,怎麼使得OKHTTP幾行代碼支持HTTPS。
1.集成EasyHttps的依賴
1.1 將你的根目錄下的build.gradle文件中添加倉庫設置
allprojects {
repositories {
maven {
url 'https://jitpack.io'
}
}
}
1.2Add the dependency
1.2在你的APP中的build.gradle中添加依賴
dependencies {
implementation 'com.github.weishubaoforwork:EasyHttps:1.0'
}
使用EasyHttps進行繞過證書對Https進行請求 (沒有證書可以使用這一步)
1 OkhttpClient的Builder設置以下代碼
okHttpClient = new OkHttpClient();
okHttpClient.newBuilder()
.connectTimeout(10, TimeUnit.SECONDS)
.readTimeout(10, TimeUnit.SECONDS)
.writeTimeout(10, TimeUnit.SECONDS).sslSocketFactory(HttpsUtils.getSslSocketFactory(null,null,null))
.hostnameVerifier(new HostnameVerifier() {
@Override
public boolean verify(String s, SSLSession sslSession) {
return true;
}
});
使用EasyHttps進行自定義證書對Https進行請求 (有證書的這樣寫)
1 請先將你的同事提供給你的.cer自定義證書文件放入Assets文件夾下,沒有的自己創建一個
2 OkhttpClient的Builder設置以下代碼
okHttpClient = new OkHttpClient();
okHttpClient.newBuilder()
.connectTimeout(10, TimeUnit.SECONDS)
.readTimeout(10, TimeUnit.SECONDS)
.writeTimeout(10, TimeUnit.SECONDS)
.sslSocketFactory(HttpsUtils.getSSlFactory(context,"certificate.cer")).hostnameVerifier(new HostnameVerifier() {
@Override
public boolean verify(String s, SSLSession sslSession) {
return true;
}
});
Github地址:https://github.com/weishubaoforwork/EasyHttps
喜歡的朋友點個贊,您的支持是我最大的動力