2014-03-12 112 views
10

我正在尋找一種方法來獲取拋出的VolleyError的響應代碼。我ErrorListener看起來是這樣的:如何從VolleyError獲取響應代碼?

Response.ErrorListener errorListener = new Response.ErrorListener() { 
    @Override 
    public void onErrorResponse(VolleyError error) { 
     error.printStackTrace(); 
     //Get response code here 
     VolleyLog.e("Error: ", error.toString()); 
     VolleyLog.e("Error: ", error.getLocalizedMessage()); 
    } 
}; 

的2線我發送給我的VolleyLog打印以下:

03-12 10:57:56.932: E/Volley(7147): [1] 1.onErrorResponse: Error: 
03-12 10:57:56.932: E/Volley(7147): [1] 1.onErrorResponse: Error: 

凌空不知道什麼回來了,因爲我還可以看到在我的VolleyLog如下:

03-12 10:57:56.692: E/Volley(7147): [41854] BasicNetwork.performRequest: Unexpected response code 403 for https://*******/Employee/authenticate 
03-12 10:57:56.897: E/Volley(7147): [41854] BasicNetwork.performRequest: Unexpected response code 403 for https://*******/Employee/authenticate 
03-12 10:57:56.902: W/System.err(7147): com.android.volley.AuthFailureError 
03-12 10:57:56.902: W/System.err(7147):  at com.android.volley.toolbox.BasicNetwork.performRequest(BasicNetwork.java:143) 
03-12 10:57:56.902: W/System.err(7147):  at com.android.volley.NetworkDispatcher.run(NetworkDispatcher.java:105) 

所以基本上,我想要的是得到響應代碼「403」(禁止)。

回答

21

通過VolleyError:

error.networkResponse.statusCode 

看源代碼,我看到VolleyError有一個名爲networkResponse有public final成員NetworkResponse,即認爲HTTP調用的statusCode。你應該檢查NPE。您可以在NetworkResponse找到源代碼。 Here你可以找到VolleyError的源代碼

+0

謝謝,那實際上很簡單。我一定忽略了它.. –