我在我的应用中使用新的(ish)凌空库进行联网。我正在与之通信的服务器返回401s,有时没有适当的挑战标题,这是无法更改的。
我开始使用OkHttp作为排球的传输层,因为我实际上需要读取响应并且当我得到401时会抛出异常。现在虽然我收到401但是请求会自动重试一旦它到达我的错误监听器之前。这对我来说是有问题的,因为401中的响应会在第二个请求上发生变化,而这是我可以访问的响应。
有没有办法改变这个,所以当你收到401时它不会自动重试,或者只是使用凌空来访问响应?
答案 0 :(得分: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");
}
}