2

我在我的应用程序中使用新的(ish)排球库进行联网。我与之通信的服务器有时会返回 401,但没有适当的质询标头,这是无法更改的。

我开始使用OkHttp作为 volley 的传输层,因为我实际上需要读取响应,并且当我收到 401 时抛出异常。现在,尽管每当我收到 401 时,请求都会自动重试一次,然后才会出现我的错误听众。这对我来说是有问题的,因为 401 中的响应在第二个请求上发生了变化,这就是我可以访问的那个。

有没有办法改变它,所以当你收到 401 时它不会自动重试,或者只使用 volley 来访问响应?

4

1 回答 1

3

像这样实现自己的RetryPolicy和覆盖的public void retry(VolleyError error)方法:

    @Override
    public void retry(VolleyError error) throws VolleyError {
        if (error.networkResponse.statusCode == HttpStatus.SC_UNAUTHORIZED)
        {
            throw new VolleyError("Client is not authorized, retry is pointless");
        }
    }
于 2014-06-24T08:27:27.057 回答