这篇文章上次修改于 2308 天前,可能其部分内容已经发生变化,如有疑问可询问作者。

做WebView图片列表展示时,遇到偶尔有图片不能显示的问题,经过多种测试,图片压缩,存放在本地,切换网络等种种方法,都没有找到问题的原因。拿到img标签中的图片链接,使用浏览器是可以正常显示的。一筹莫展之际,想到了抓包,得到的结果是403,403就是没有权限,为什么没有权限呢?

没有权限,很容易让我想到了图片链接中后缀的两个参数,大概是这样:https://cdn.xxx.com/abcxxxx.jpg?sign=XKD0DFL45KDfdkSKD%2bdksld&xxx=xxxx,如果去掉后边的参数,放到浏览器中也是会报403的错误,问题就出在这两个参数。于是,把图片列表中的每个链接都拿出来,进行比较,图片有的可以显示,有的不能显示,发现不能显示图片的链接中都带有%2b,这是个转意字符,其实就是+加号,通过查询,资料很少,stackoverflow上有人提到了这个问题

解决方案:抱歉,我还没有找到好的解决方法。

有人在服务器端通过在生成sign时,做检查,如果有%2b就重新生成一个,这并不能算一种解决方案,我认为。

后来的图片列表展示功能,因为使用WebView还有其他问题,改用了ListView,这也不能算解决方案~