最近由于苹果app要求ios应用网络请求必须使用https,于是公司后端把所有的http接口改为https请求,关于数据的请求 网上也有很多的文章 看文章基本可以实现让自己的app支持https 但是由于我的图片加载是使用的第三方UniversilImageLoader 图片加载框架 在请求https网络图片时 出现了
java.security.cert.CertPathValidatorException:
Trust anchor for certification path not found 的异常 导致图片不能加载显示,网上也查了一些资料 这方面的比较少 有一篇文章有讲到 但是比较零散 我在这里大家综合整理了一下 图文并茂 可以让你花很少的时间和精力,快速集成到自己的项目中,到了废话到此结束,上菜喽!!
第一步 在AndroidStudio中 集成UniversilImageLoader 只需一行代码 把下面的一行代码复制粘贴到你的build.gradle文件夹里 就可以了
compile 'com.nostra13.universalimageloader:universal-image-loader:1.9.5'
如果不清楚那个文件夹 可以参考下图
第二部:
创建一个
AuthImageDownLoader的类 继承BaseImagerDownLoader 并实现它的两个构造方法
不清楚的可以看下图:
(图片中有些代码显示不全 不要着急 最后我会把全部代码 贴上)
第三部:封装ImageLoaderManager
第四部:
如何使用
单例模式获取ImageLoaderManager对象 调用displayImage(imageview,url)方法 传入要显示图片的View控件和图片地址 就可以啦
可以参考下图
好的 下面贴上上面用到的代码,可以直接把下面的代码复制粘贴到你的项目里 可以直接使用
第一个类 AuthImageDownloader.java
package com.sunking.mockingbot.Utils; import android.content.Context; import com.nostra13.universalimageloader.core.download.BaseImageDownloader; import java.io.BufferedInputStream; import java.io.IOException; import java.io.InputStream; import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.URL; import java.security.KeyManagementException; import java.security.NoSuchAlgorithmException; import javax.net.ssl.HostnameVerifier; import javax.net.ssl.HttpsURLConnection; import javax.net.ssl.SSLContext; import javax.net.ssl.SSLSession; import javax.net.ssl.SSLSocketFactory;