【发布时间】:2021-08-13 23:54:11
【问题描述】:
我正在使用 Volley 的 JsonObjectRequest 从 Web 服务器获取 JSON 数据。基本上我的代码如下所示:
JsonObjectRequest jsonRequest = new JsonObjectRequest("https://www.example.com", null, new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
...
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
if (error.networkResponse.statusCode == 401) {
// Show toast message saying "Access unauthorized"
} else {
// show toast message saying "Could not fetch"
}
}
});
如果请求失败并出现 401 错误,则会按预期显示“访问未授权”toast 消息。但是,如果由于某些原因(例如没有互联网)请求失败,应用程序会崩溃并抛出 NullPointerException,因为 networkResponse 在 error 中不存在。
如何正确处理这两种失败原因?
【问题讨论】: