IOS ---兩種網絡請求的最佳實踐

在使用URL 加載系統時,主要的兩種方法可以執行HTTP請求和接收響應:

一、同步請求的最佳實踐

  • 只在後臺線程中使用同步請求,除非確定請求訪問的是本地文件資源,否則請不要再主線程上使用;
  • 只有在知道返回的數據不會超出應用的內存時才使用同步請求。記住,整個響應體都會在位於代碼的內存中。如果響應很大,那麼可能導致應用出現內存溢出問題。此外,當代嗎將響應解析爲所需的格式時可能需要複製返回的數據,這會導致內存增加一倍;
  • 在處理返回的數據前,驗證錯誤與調用返回的HTTP響應狀態碼;
  • 如果源URL需要驗證,那麼不要使用同步請求,因爲同步框架並不支持對認證請求作出響應;
  • 如果需要向用戶提供進度條,那麼不要使用同步請求,因爲請求是原子的,無法提供中間的進度指示信息;
  • 如果需要通過流解析器來漸進解析響應數據,那麼不要使用同步請求;
  • 如果在請求完成前需要取消,那麼不要使用同步請求。

二、異步請求的最佳實踐

  • 對於大的上傳或者下載來說,請使用異步請求以減少應用的內存佔用量;
  • 在需要認證的情況下請使用異步請求;
  • 如果需要向用戶提供進度反饋,那麼請使用異步請求;
  • 在後臺線程上使用異步請求時要小心,請提供一個運行循環;
  • 對於可以在後臺線程的請求隊列中輕鬆調度和完成的簡單請求來說,這時使用異步請求有些過猶不及;
  • 如果使用輸入流來上傳數據,請實現connection:newBodyStream:方法以避免對輸入流的複製
發佈了47 篇原創文章 · 獲贊 0 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章