サーバーをHTTP
からHTTPS
に移行しました。自己署名証明書を使用してHttpUrlConnection
でネットワークリクエストを送信しましたが、機能しましたが、イメージの読み込みでは機能しません。画像の読み込みにGlideを使用しました。
javax.net.ssl.SSLHandshakeException:Java.security.cert.CertPathValidatorException:https URLから画像を読み込んでいる間に、証明書パスのトラストアンカーが見つかりません図書館
Glide.with(mContext).load(currentItem.getImage_path().replace(" ", "%20"))
.listener(new RequestListener<String, GlideDrawable>() {
@Override
public boolean onException(Exception e, String model, Target<GlideDrawable> target, boolean isFirstResource) {
genericViewHolder.imageView_1.setImageResource(R.drawable.image_thumbnail);
genericViewHolder.progressBar.setVisibility(View.GONE);
return false;
}
@Override
public boolean onResourceReady(GlideDrawable resource, String model, Target<GlideDrawable> target, boolean isFromMemoryCache, boolean isFirstResource) {
genericViewHolder.progressBar.setVisibility(View.GONE);
return false;
}
}).into(genericViewHolder.imageView_1);
this リンクを使用してGlideModuleを使用しようとしましたが、動作しないようです。助けてください。
問題は証明書に関するもので、このリンクをたどります- https://stackoverflow.com/a/39032433/4741746
これは証明書をバイパスし、システムに入力できるようにします
このリンクも参照してください- https://futurestud.io/tutorials/glide-module-example-accepting-self-signed-https-certificates
カスタムのGlideModuleクラス、OkHttpUrlLoaderクラスを作成し、上記のリンクにあるようにGlideにアタッチします
あなたは置く必要があります
<meta-data
Android:name="io.futurestud.tutorials.glide.glidemodule.CustomImageSizeGlideModule"
Android:value="GlideModule" />
AndroidMainifiestファイルのアプリケーションタグ内 https://github.com/fs-opensource/Android-tutorials-glide/blob/master/app/src/main/AndroidManifest.xml
グライド4の場合
@GlideModule
public class MyGlideModule extends AppGlideModule {
@Override
public void registerComponents(@NonNull Context context, @NonNull Glide glide, @NonNull Registry registry) {
//To Attach Self Signed Ssl Certificate
/*OkHttpClient okHttpClient = new OkHttpClient.Builder()
.sslSocketFactory(sslSocketFactory, X509TrustManager)
.build();*/
//Unsafe Okhttp client
OkHttpClient okHttpClient= UnsafeHttpsClient.getUnsafeOkHttpClient();
registry.replace(GlideUrl.class, InputStream.class, new OkHttpUrlLoader.Factory(okHttpClient));
}
}
両方の上で正解ですが、以下の依存関係も確認してくださいokhttp3-integration:4.4.0バージョンを追加または変更してください
implementation ('com.github.bumptech.glide:okhttp3-integration:4.4.0'){
exclude group: 'glide-parent'
}