gpt4 book ai didi

android - 带 Picasso 的 SSL 证书固定

转载 作者:太空宇宙 更新时间:2023-11-03 12:05:44 24 4
gpt4 key购买 nike

我正在使用 Picasso 来缓存图像。我们的后端最近切换到 HTTPS,使用自签名证书固定作为身份验证。我使用 khandroid 库创建了一个将证书固定到每个请求的 HTTP 客户端;基本上遵循这个例子。

http://ogrelab.ikratko.com/using-android-volley-with-self-signed-certificate/

我现在需要将相同的概念应用于 Picasso,但不确定如何修改 Picasso 的单例以使用固定的 SSL 证书。

最佳答案

原来我只是找错地方了。我试图修改 OkHttpDownloader,但我需要修改 OkHttpClient。这是一些示例代码。

public static Picasso getInstance(Context context) {
if (sPicasso == null) {
InputStream keyStore = context.getResources().openRawResource(R.raw.my_keystore);
Picasso.Builder builder = new Picasso.Builder(context);
OkHttpClient okHttpClient = new OkHttpClient();
SSLContext sslContext;
try {
sslContext = SSLContext.getInstance("TLS");
sslContext.init(null, new TrustManager[]{new SsX509TrustManager(keyStore, password)}, null);
okHttpClient.setSslSocketFactory(sslContext.getSocketFactory());
OkHttpDownloader okHttpDownloader = new OkHttpDownloader(okHttpClient);
builder.downloader(okHttpDownloader);
sPicasso = builder.build();
} catch (NoSuchAlgorithmException e) {
throw new IllegalStateException("Failure initializing default SSL context", e);
} catch (KeyManagementException e) {
throw new IllegalStateException("Failure initializing default SSL context", e);
} catch (GeneralSecurityException e) {
e.printStackTrace();
}
}

return sPicasso;
}

关于android - 带 Picasso 的 SSL 证书固定,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31859282/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com