使用融云SDK發(fā)現(xiàn)聊天頁(yè)面圖片不能預(yù)覽大圖問題

問題:

最近接手一個(gè)項(xiàng)目,聊天功能接入的是融云SDK而且版本比較早,出現(xiàn)聊天頁(yè)面圖片不能預(yù)覽大圖問題,提示加載失敗。
控制臺(tái)打印錯(cuò)誤:

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

集成方式:

集成融云SDK的方式:把RCE 的工程直接導(dǎo)入進(jìn)去,且有二次開發(fā)。所以直接升級(jí)SDK的方式直接pass掉。記得一定不要直接修改第三方的源碼,可以使用繼承、分類或者擴(kuò)展的方式,不然等到問題出現(xiàn)時(shí)就沒法修改代碼了。

排查思路:

前期:
  1. 在工程中通過替換圖片地址進(jìn)行測(cè)試;
    -- 通過測(cè)試網(wǎng)絡(luò)圖片以及其他項(xiàng)目圖片都是能加載成功,只有當(dāng)前項(xiàng)目的地址不成功。
  2. 自建demo使用SDWebImage的方式加載異常圖片地址;
    -- 通過使用SDWebImage加載當(dāng)前項(xiàng)目地址圖片、網(wǎng)絡(luò)圖片、其他項(xiàng)目圖片都能成功。
總結(jié):
  1. 可能是服務(wù)器問題;
  2. 也可能是SDK問題;

到這里確定了問題方,接下來繼續(xù)定位到具體的問題點(diǎn),所以繼續(xù)往下看

后期:

因?yàn)橹豢磍og和控制臺(tái)能獲取的信息太少,不足以定位問題,所以需要進(jìn)行抓包。

說到抓包強(qiáng)烈給大家安利一個(gè)軟件Stream,如果是需要抓包手機(jī)APP那么直接在手機(jī)安裝這個(gè)軟件,親測(cè)比Charles簡(jiǎn)單好用很多

抓包測(cè)試思路
  1. 用SDWebImage搞個(gè)小demo;
  2. 把異常圖片抓包獲取的header一個(gè)個(gè)的配置到SDWebImage里面;
  3. 分別運(yùn)行查看圖片能不能顯示,記得一定要清除緩存或者直接刪除demo重新運(yùn)行;

解決:

最后發(fā)現(xiàn)是header中的一個(gè)字段的問題。反饋給服務(wù)器或者SDK方進(jìn)行查看修復(fù)。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容