java - 是什么导致注册到 volley 请求的 ErrorListener 被触发?

标签 java android networking android-volley listener

This page 说我们可以注册一个 Listener 到 volley 请求来处理错误: https://developer.android.com/training/volley/simple

但是它没有提到什么样的错误会触发这个监听器。 Volley javadoc 对此也没有任何说明。

具体来说,如果发生网络错误,是否会执行此监听器。 我问这个是因为我遇到了以下形式的 android 代码:

 private void method() {
    String URL = "";
    final int[] status_code = new int[1];
    StringRequest request = new StringRequest(Request.Method.POST, URL,
            new Response.Listener<String>() {
                @Override
                public void onResponse(String response) {
                    if (status_code[0] == 200) {
                        // do something
                    } else {
                        // display toast
                    }
                }
            },
            new Response.ErrorListener() {
                @Override
                public void onErrorResponse(VolleyError error) {
                    // display toast
                }
            }) {
        @Override
        protected Response<String> parseNetworkResponse(NetworkResponse response) {
            status_code[0] = response.statusCode;
            return super.parseNetworkResponse(response);
        }
    };
    // add request to queue
}

此代码似乎表明注册的 ErrorListener 不会因网络错误而被调用。

什么条件导致注册到 Volley 请求的 ErrorListener 被调用

最佳答案

ErrorListener4xx 响应和 5xx 响应触发 我不知道 3xx 会发生什么重定向响应,因为它没有发生在我身上。

这是一个包含所有 HTTP 响应代码的列表: https://www.restapitutorial.com/httpstatuscodes.html

关于java - 是什么导致注册到 volley 请求的 ErrorListener 被触发?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52725449/

相关文章:

java - 从java中读取文件时出错

java - 滚动时单选按钮自行检查

android - 传感器肖像 : How to catch orientation changing?

c# - 使用 cmd 或 C# 列出网络上的所有计算机

c++ - 在 C++ 中发布接收和存储数据

linux - TCP 套接字从错误的端口接收

java - UserDetailsS​​ervice 的 loadUserByUsername 方法从未被调用

java - 方法initLoader问题

android - ConstraintSet动画中引用 View 宽度为wrap_content时 View 的平移动画

android - 如何重新生成 R.java 文件?