使用picasso加载需要证书的https图片
2017-08-23 18:02
155 查看
我在项目中用到的图片加载框架是picasso,但是最近遇到个问题,picasso加载不出来公司的https图片,查了下需要将以下代码到application中
但是加了之后还是不能加载出来,琢磨了一下可能是要加证书进行验证,因为picasso内部是okhttp进行下载的,所以查了下给okhttp设置单项证书认证,加上单项认证之后确实也就可以加载出来了,关于okhttp单向认证的问题下篇再讲。
贴一下我这边完整的代码
至于上面代码中的HttpsUtils是一个单向认证的工具类。其中的OkHttp3Downloader是特意为picasso写的加载https图片所做的一个类OkHttp3Downloader
至于为什么不直接把HttpsUtils类代码贴出来,那是因为我要跑路回家了,有空再补
final OkHttpClient client = new OkHttpClient.Builder() .protocols(Collections.singletonList(Protocol.HTTP_1_1)) .build(); final Picasso picasso = new Picasso.Builder(this) .downloader(new OkHttp3Downloader(client)) .build(); Picasso.setSingletonInstance(picasso);
但是加了之后还是不能加载出来,琢磨了一下可能是要加证书进行验证,因为picasso内部是okhttp进行下载的,所以查了下给okhttp设置单项证书认证,加上单项认证之后确实也就可以加载出来了,关于okhttp单向认证的问题下篇再讲。
贴一下我这边完整的代码
HttpsUtils.SSLParams sslParams =null; try { sslParams=HttpsUtils.getSslSocketFactory(new InputStream[]{getAssets().open("ddsoucai.cer")}, null, null); } catch (Exception e) { e.printStackTrace(); } OkHttpClient client = new OkHttpClient.Builder() .hostnameVerifier(new HostnameVerifier() { @Override public boolean verify(String hostname, SSLSession session) { return true; } }) .sslSocketFactory(sslParams.sSLSocketFactory,sslParams.trustManager)//https .build(); final Picasso picasso = new Picasso.Builder(this) .downloader(new OkHttp3Downloader(client)) .build(); Picasso.setSingletonInstance(picasso);
至于上面代码中的HttpsUtils是一个单向认证的工具类。其中的OkHttp3Downloader是特意为picasso写的加载https图片所做的一个类OkHttp3Downloader
至于为什么不直接把HttpsUtils类代码贴出来,那是因为我要跑路回家了,有空再补
相关文章推荐
- Android 使用Picasso加载网络图片等比例缩放
- 微信支付证书问题C#使用Https访问加载SSL证书本地调试正常服务器IIS内部错误解决方法
- Android图片加载框架Picasso最全使用教程 三
- Android图片加载框架Picasso最全使用教程
- 使用Picasso加载图片
- Picasso开源图片加载利器使用初探
- 使用Picasso加载图片的内存优化实践
- 使用Picasso加载图片的内存优化实践
- Picasso网络图片加载框架的使用
- Android图片加载框架Picasso最全使用教程 五
- android 开源库之图片加载-Universal-Imageoader和Picasso的使用和比较
- ios 图片加载方式,内存控制,尽量避免使用imageNamed,使用ARC也需要
- Android webview 使用HTTPS时有的图片不能加载
- 使用Picasso加载图片的内存优化实践
- dotnet 使用HttpWebRequest向Https Post数据时,需要证书确认的解决方法
- 使用Picasso加载网页图片到RecyclerView
- 使用Picasso加载图片的内存优化实践
- 使用Picasso加载图片的内存优化实践
- 使用Picasso加载图片的内存优化实践
- Android图片加载框架Picasso最全使用教程 二