Android Volley:支持的状态码问题

时间:2016-03-10 10:27:16

标签: java android rest android-volley

我在我的Android应用程序中使用了volley库中的restful API,正如我在restful API中所知,我们应该在特殊情况下实现STATUS CODES,但是当我检查此路径中的凌空代码时: volley\toolbox\BasicNetwork.java我看到凌空只接受200到299之间的状态代码。

if (statusCode < 200 || statusCode > 299) {
    throw new IOException();
}

为什么呢? 这是否意味着凌空不支持RESTFUL架构?

2 个答案:

答案 0 :(得分:0)

VolleyError有一个公共的NetworkResponse类型的变量。您可以访问error.networkResponse.statusCode来实现您的http错误代码。

public void onErrorResponse(VolleyError error) {

NetworkResponse response = error.networkResponse;
if (error instanceof ServerError && response != null) {
    try {    
        // Deserialize data using what you want
        JSONObject obj = new JSONObject(res);
    } catch (UnsupportedEncodingException e1) {
        e1.printStackTrace();
    } catch (JSONException e2) {
        e2.printStackTrace();
    }
}
}

您可以在此处详细了解此信息。 Android Volley - BasicNetwork.performRequest: Unexpected response code 400

答案 1 :(得分:0)

如果服务器STATUS_CODE介于200 - 299之间,那么这是一个相当成功的状态,Volley将触发onResponse回调。

代码:

if (statusCode < 200 || statusCode > 299) {
    throw new IOException();
}

只是意味着:当状态代码不在200 - 299之间因此这是一个错误,而Volley将触发onErrorResponse回调。