查看“Picasso 带 Cookies 加载图片”的源代码
←
Picasso 带 Cookies 加载图片
跳到导航
跳到搜索
因为以下原因,您没有权限编辑本页:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
[[Category:Android]] 2019-04-15 11:50 == 用途 == 在加载验证码的时候,如果 Picasso 直接请求图片而不加上 Cookies,可能导致 API 返回验证码错误的问题。<br> == 解决方法 == 设置一个 CookieImageDownloader。<br> <pre> public class CookieImageDownloader extends UrlConnectionDownloader { public CookieImageDownloader(Context context) { super(context); } @Override protected HttpURLConnection openConnection(Uri path) throws IOException { HttpURLConnection conn = super.openConnection(path); conn.setRequestProperty("Cookie", BaseApplication.getCookies()); return conn; } } </pre> 在 openConnection(Uri path) 中的 BaseApplication.getCookies() 是一个字符串,样式为:<br> <pre> key=value; key=value; key=value </pre> 因为每人所用的网络框架都不同,因此这里只举出我所使用的 OkGo 3 的例子:<br> <pre> StringBuilder cookieBuilder = new StringBuilder(); for (int i = 0; i < cookieStore.getAllCookie().size(); i++) { cookieBuilder.append(cookieStore.getAllCookie().get(i).name()); cookieBuilder.append("="); cookieBuilder.append(cookieStore.getAllCookie().get(i).value()); if (i < cookieStore.getAllCookie().size() - 1) { cookieBuilder.append(";"); } } BaseApplication.cookies = cookieBuilder.toString(); </pre> 最后在需要加载图片的地方:<br> <pre> Picasso picasso = new Picasso.Builder(activity).downloader(new CookieImageDownloader(activity)).build(); picasso.load(NetRequest.getCodeImg) .fit() .networkPolicy(NetworkPolicy.NO_STORE, NetworkPolicy.NO_CACHE) .memoryPolicy(MemoryPolicy.NO_STORE, MemoryPolicy.NO_CACHE) .centerCrop() .config(Bitmap.Config.RGB_565) .into(activity.binding.ivCode); </pre> 大功告成。<br>
返回至“
Picasso 带 Cookies 加载图片
”。
导航菜单
个人工具
登录
命名空间
页面
讨论
不转换
已展开
已折叠
不转换
简体
繁體
大陆简体
香港繁體
澳門繁體
大马简体
新加坡简体
臺灣正體
查看
阅读
查看源代码
查看历史
更多
已展开
已折叠
搜索
导航
首页
最新更新
随机页面
日常
日常
生产
同人
笔记
Android
uni-app
iOS
Windows
Java
PHP
Linux
macOS
Unity
Cocos
刷机
cas
岁月留声
课程表
番组表
经典电视
经典音乐
经典动画
经典应用程式
外链
Animax Asia 節目表
Animax (含 HD) 節目表
i-Fun 愛放動漫 節目表
My 101 綜合台 節目表
就是節目表
全国郵便番号一覧 (日本)
Rainy Mood
Test Your Cloudflare Threat Score
管理
快捷方式
工具
链入页面
相关更改
特殊页面
页面信息