如何从 VolleyError 获取响应代码?

我正在寻找一种方法来获取抛出的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());
    }
};

我发送到我的VolleyLog的2行打印以下内容:

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: 

Volley确实知道回来的东西,因为我还可以在我的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”(禁止)。


答案 1

通过凌空错误:

error.networkResponse.statusCode

查看源代码,我看到 VolleyError 有一个名为 的公共最终成员,该成员持有 Http 调用的成员。您应该检查NPE。NetworkResponsenetworkResponsestatusCode

在这里,您可以找到 .在这里,您可以找到NetworkResponseVolleyError


答案 2

推荐