一.获取证书
假设app要请求的网址是https://192.168.1.6:8080,在Chrome浏览器中输入网址
会显示证书不安全
从浏览器中到处证书
点击证书后出现如下窗口
点击复制文件,然后下一步到
选择好格式后点下一步,选择路径,后缀可以为.crt或.cer
后面就是下一步,然后完成
然后就可以在选择的导出路径处看到从浏览器中导出的https自签名证书
二.导入证书到项目中
将获取的证书放到app目录下的res/raw文件中
三.向OkHttp添加证书
在创建httpClient的地方将证书导入
private static Retrofit createRetrofit(String baseUrl){
httpClient = new OkHttpClient.Builder()
.connectTimeout(CONNECT_TIMEOUT, TimeUnit.SECONDS)
.readTimeout(READ_TIMEOUT, TimeUnit.SECONDS)
.writeTimeout(WRITE_TIMEOUT, TimeUnit.SECONDS)
// 注释下面的代码,将关闭在每次 http 请求的时候输出日志
.addInterceptor(new HttpLoggingInterceptor().setLevel(HttpLoggingInterceptor.Level.BODY))
.addInterceptor(chain -> {
Request request = chain.request();
if (userAgent != null) {
request = request.newBuilder()
.header(ApiConstant.Param.USER_AGENT, userAgent)
.header(ApiConstant.Param.LANG, config.getLang())
.header(ApiConstant.Param.AREA_CODE,config.getAreaCode())
.build();
}
return chain.proceed(request);