1. 程式人生 > >使用volley時 onErrorResponse錯誤,如何檢視詳細的資訊

使用volley時 onErrorResponse錯誤,如何檢視詳細的資訊

使用volley時 onErrorResponse錯誤,無法看到詳細的資訊? 有兩種方式處理

方法1.抓包 通過Fiddler抓包,在ubuntu系統下通過mitmproty來抓包;或者android4.4以上系統 可以通過最新的chrome瀏覽器–工具–檢查裝置來抓包。

在gsonrequest中重寫parseNetworkError 如下:
//In your extended request class

@Override 
protected VolleyError parseNetworkError(VolleyError volleyError){
        if
(volleyError.networkResponse != null && volleyError.networkResponse.data != null){ VolleyError error = new VolleyError(new String(volleyError.networkResponse.data)); volleyError = error; } return volleyError; } }

還要提示一點排查錯誤資訊可以通過androidstudio的篩選 error volley。來直觀的看到錯誤的狀態碼。 NetworkError ClientError ServerError AuthFailureError ParseError NoConnectionError TimeoutError

知其然,還要知其所以然

BasicNetwork.java 中函式 performRequest執行錯誤時會丟擲錯誤。 throw new ServerError(networkResponse);

networkResponse的類如下: public class NetworkResponse { public final int statusCode; public final byte[] data; public final Map headers; public final boolean notModified; …… } 所以重寫gsongrequest中的 方法parseNetworkError。通過networkResponse的data獲得更詳細的錯誤資訊資訊。