使用融云SDK发现聊天页面图片不能预览大图问题

问题:

最近接手一个项目,聊天功能接入的是融云SDK而且版本比较早,出现聊天页面图片不能预览大图问题,提示加载失败。
控制台打印错误:

Error Domain=xxx.xxx.xxx Code=406 "(null)" // xxx.xxx.xxx表示服务器域名

集成方式:

集成融云SDK的方式:把RCE 的工程直接导入进去,且有二次开发。所以直接升级SDK的方式直接pass掉。记得一定不要直接修改第三方的源码,可以使用继承、分类或者扩展的方式,不然等到问题出现时就没法修改代码了。

排查思路:

前期:
  1. 在工程中通过替换图片地址进行测试;
    -- 通过测试网络图片以及其他项目图片都是能加载成功,只有当前项目的地址不成功。
  2. 自建demo使用SDWebImage的方式加载异常图片地址;
    -- 通过使用SDWebImage加载当前项目地址图片、网络图片、其他项目图片都能成功。
总结:
  1. 可能是服务器问题;
  2. 也可能是SDK问题;

到这里确定了问题方,接下来继续定位到具体的问题点,所以继续往下看

后期:

因为只看log和控制台能获取的信息太少,不足以定位问题,所以需要进行抓包。

说到抓包强烈给大家安利一个软件Stream,如果是需要抓包手机APP那么直接在手机安装这个软件,亲测比Charles简单好用很多

抓包测试思路
  1. 用SDWebImage搞个小demo;
  2. 把异常图片抓包获取的header一个个的配置到SDWebImage里面;
  3. 分别运行查看图片能不能显示,记得一定要清除缓存或者直接删除demo重新运行;

解决:

最后发现是header中的一个字段的问题。反馈给服务器或者SDK方进行查看修复。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容