3.3.2 同步請求

只在后臺線程中使用同步請求, 除非確定請求訪問的是本地文件資源, 否則請不要在主線程上使用


只有在知道返回的數(shù)據(jù)不會超出應(yīng)用的內(nèi)存時才使用同步請求. 記住, 整個響應(yīng)體都會位于代碼的內(nèi)存中. 如果響應(yīng)很大, 那么可能導(dǎo)致應(yīng)用出現(xiàn)內(nèi)存溢出問題. 此外, 當(dāng)代碼將響應(yīng)解析為所需的格式時可能需要復(fù)制返回的數(shù)據(jù), 這會導(dǎo)致內(nèi)存增加一倍


在處理返回的數(shù)據(jù)前, 驗證錯誤與調(diào)用返回的 HTTP 響應(yīng)狀態(tài)碼


如果源 URL 需要驗證, 那么不要使用同步請求, 因為同步框架并不支持對認(rèn)證請求作出響應(yīng). 唯一的例外是 BASIC 認(rèn)證, 因為這時認(rèn)證信息可以通過 URL 或請求頭進(jìn)行傳遞. 以這種方式執(zhí)行認(rèn)證會增加應(yīng)用與服務(wù)器之間的耦合度, 從面導(dǎo)致整個應(yīng)用變得更加脆弱. 如果請求不使用 HTTPS 協(xié)議, 那么還會在明文中傳遞認(rèn)證信息


如果需要向用戶提供進(jìn)度條, 那么不要使用同步請求, 因為請求是原子的, 無法提供中間的進(jìn)度指示信息

如果在請求完成前需要取消, 那么不要使用同步請求



同步請求
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 134,991評論 19 139
  • iOS網(wǎng)絡(luò)編程讀書筆記 Facade Tester客戶端門面模式的實例(被動版本化) 被動版本化,所以硬編碼URL...
    melouverrr閱讀 1,631評論 3 7
  • 從三月份找實習(xí)到現(xiàn)在,面了一些公司,掛了不少,但最終還是拿到小米、百度、阿里、京東、新浪、CVTE、樂視家的研發(fā)崗...
    時芥藍(lán)閱讀 42,374評論 11 349
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 173,552評論 25 708
  • 01 大學(xué)畢業(yè)后,我留在了這個離家?guī)装俟锏拇蟪鞘校幌蛞聛砩焓诛垇韽埧诘奈遥_始明白生活并非只有詩和遠(yuǎn)方,還有現(xiàn)...
    蘇曼卿閱讀 561評論 5 13