我将服务器从HTTP
迁移到HTTPS
,我使用自签名证书通过HttpUrlConnection
发送网络请求,它工作,但对于图像加载,它不工作,因为我使用Glide进行图像加载。
javax.net.ssl.SSLHandshakeException:证书路径验证器异常:通过glide库从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,但它似乎不起作用。请帮助。
5条答案
按热度按时间egmofgnx1#
问题是关于证书,请点击此链接-https://stackoverflow.com/a/39032433/4741746
这将绕过证书并允许您进入系统
此分类下一篇:https://futurestud.io/tutorials/glide-module-example-accepting-self-signed-https-certificates
创建您的自定义GlideModule类,OkHttpUrlLoader类并附加到您的Glide,如上面的链接所述
你得把
AndroidMainifiest文件的内部应用程序标记https://github.com/fs-opensource/android-tutorials-glide/blob/master/app/src/main/AndroidManifest.xml
2ic8powd2#
您可以使用我从Trusting all certificates with okHttp的答案中复制的代码-
创建类UnsafeOkHttpClient.java
authType)抛出CertificateException { }
authType)抛出CertificateException { }
创建一个类MyGlideModule.java
创建一个类OkHttpStreamFetcher.java
内容长度);callback.onDataReady(stream);} else { callback.onLoadFailed(new HttpException(response.message(),response.code()));{\fnSimHei\bord1\shad1\pos(200,288)}
创建一个类OkHttpUrlLoader.java
添加app/build.gradle
{排除组:'slide-parent' }
在安卓清单. xml中
hgncfbus3#
上面两个答案都正确,但也要确保下面的依赖添加或更改okhttp 3-integration:4.4.0版本
wvyml7n54#
滑翔机4
zengzsys5#
我尝试使用Glide 4.x在imagview中加载https图像URL。我在代码中应用了各种开发人员的答案,但我没有成功加载图像。最后我找到了一个使用Glide在imageview中加载https图像URL的解决方案。为此,您必须按照以下步骤使用glide请求附加证书。
第1步:您需要从glide官方GitHub documentation导入最新的glide库。如果您启用了proguard,请按照glide文档中的说明在proguard文件中添加代码。
面向Java开发者
面向Kotling开发者
第二步:一旦Glide Library成功与您的项目一起构建。UnsafeOkHttpClient类。我已经在java中创建了这个类,但您可以根据需要在Kotlin中创建它。
第3步:现在开始创建扩展了AppGlideModule和**@GlideModule注解的类。注解后重新构建您的项目,它将在您的项目中创建一个类GlideApp**类。该类帮助我们在glide尝试加载https URL时发送SSL请求。
面向Java开发人员
对于KotlinDevloper
第四步:使用GlideApp,如
GlideApp.with(this).load(imgUrl).into(glide_test_iv1)
**总结:**Glide 4.0不需要在AndroidManifest.xml中声明GlideModule,只需按照以下步骤操作即可:
1.你应该在“android studio -〉build -〉make project”中创建项目,它将生成GlideApp类。
1.使用GlideApp,如GlideApp.with(this).load(imgUrl).into(glide_test_iv1)