Fresco 等图片加载库使用自签署 HTTPS 证书

Fresco 是一个强大的图片加载组件。使用它之后,你不需要再去关心图片的加载和显示这些繁琐的事情! 支持 Android 2.3 及以后的版本。

Fresco 等图片加载库使用自签署 HTTPS 证书_第1张图片
Fresco
开始使用 Fresco

假设使用由知名 CA 发放证书的网络服务器,那么加载图片:

Uri uri = Uri.parse("https://raw.githubusercontent.com/facebook/fresco/gh-pages/static/logo.png");
SimpleDraweeView draweeView = (SimpleDraweeView) findViewById(R.id.my_image_view);
draweeView.setImageURI(uri);
自签署证书

使用未知的证书颁发机构或者自签署的服务器证书时,如果不进去配置,Fresco 将不会加载图片;

Fresco 支持自签署证书的 HTTPS,通过自定义 Fresco 的网络层 即可;

项目中使用 OkHttp,让 OkHttp 支持自签署证书,并配置到 Fresco 中,Fresco 将可加载自签署证书的网络图片。

CustomTrust ct = new CustomTrust();
OkHttpClient client = new OkHttpClient.Builder()
        .sslSocketFactory(ct.sslSocketFactory, ct.trustManager)
        .hostnameVerifier((s, sslSession) -> true)
        .build();
ImagePipelineConfig config = OkHttpImagePipelineConfigFactory
        .newBuilder(getApplicationContext(), client)
        .build();
Fresco.initialize(getApplicationContext(), config);

CustomTrust 可以参考 Retrofit OkHttp 使用自签名证书连接 HTTPS 一文。

参考资料
  • 文中的链接
  • Glide 系列预览 #17

你可能感兴趣的:(Fresco 等图片加载库使用自签署 HTTPS 证书)