1. 程式人生 > >Volley 的網路重試策略

Volley 的網路重試策略

轉自:https://www.jianshu.com/p/410ca2039002

 

這裡主要是記錄需要做重試的異常,要看詳細的乾貨看上文:

volley哪些異常需要進行重試:

1、超時

(1)連線超時(ConnectTimeoutException):
(2)socket超時(SocketTimeoutException):

不過貌似ajax沒區分,連線超時和socket超時,所以只要是timeout就要進行重試

2、(statusCode == HttpStatus.SC_UNAUTHORIZED ||statusCode == HttpStatus.SC_FORBIDDEN)
401 (Unauthorized/未授權)
401 (SC_UNAUTHORIZED)表示客戶端在授權頭資訊中沒有有效的身份資訊時訪問受到密碼保護的頁面。這個響應必須包含一個WWW-Authenticate的授權
資訊頭。例如,在本書4.5部分中的“Restricting Access to Web Pages./限制訪問Web頁。” 

403 (Forbidden/禁止)
403 (SC_FORBIDDEN)的意思是除非擁有授權否則伺服器拒絕提供所請求的資源。這個狀態經常會由於伺服器上的損壞檔案或目錄許可而引起。 

做認證處理之後,重新去請求

3、(statusCode == HttpStatus.SC_MOVED_PERMANENTLY ||statusCode == HttpStatus.SC_MOVED_TEMPORARILY)
301 (Moved Permanently)
301 (SC_MOVED_PERMANENTLY)狀態是指所請求的文件在別的地方;文件新的URL會在定位響應頭資訊中給出。瀏覽器會自動連線到新的URL。 


302 (Found/找到)
與301有些類似,只是定位頭資訊中所給的URL應被理解為臨時交換地址而不是永久的。注意:在 HTTP 1.0中,訊息是臨時移動(Moved Temporarily)的
而不是被找到,因此HttpServletResponse中的常量是SC_MOVED_TEMPORARILY不是我們以為的SC_FOUND。 

做重定向處理之後,重新去請求

怎麼做超時重試和如何細化請看上面的參考文章!