J'ai migré le serveur de HTTP
vers HTTPS
J'ai utilisé un certificat auto-signé pour envoyer des requêtes réseau avec HttpUrlConnection
et cela a fonctionné mais pour le chargement d'image cela ne fonctionne pas comme je l'ai fait utilisé Glide pour le chargement d'images.
javax.net.ssl.SSLHandshakeException: Java.security.cert.CertPathValidatorException: ancre de confiance pour le chemin de certification introuvable. lors du chargement d'images à partir de URL https via glide bibliothèque
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);
J'ai essayé d'utiliser le lien this et j'ai utilisé GlideModule mais cela ne semble pas fonctionner. Veuillez aider.
Le problème concerne le certificat, suivez ce lien - https://stackoverflow.com/a/39032433/4741746
Cela contournera le certificat et vous permettra d'entrer dans le système
voir aussi ce lien - https://futurestud.io/tutorials/glide-module-example-accepting-self-signed-https-certificates
Créez votre classe GlideModule personnalisée, classe OkHttpUrlLoader et attachez-vous à Glide comme mentionné dans le lien ci-dessus
Vous devez mettre
<meta-data
Android:name="io.futurestud.tutorials.glide.glidemodule.CustomImageSizeGlideModule"
Android:value="GlideModule" />
Balise d'application interne de votre fichier AndroidMainifiest https://github.com/fs-opensource/Android-tutorials-glide/blob/master/app/src/main/AndroidManifest.xml
Pour Glide 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));
}
}
Au-dessus des deux, répondez à droite, mais assurez-vous également en dessous de la dépendance Ajouter ou modifier l'intégration okhttp3: version 4.4.0
implementation ('com.github.bumptech.glide:okhttp3-integration:4.4.0'){
exclude group: 'glide-parent'
}