android:volley在收到403代码时不断重试

android:volley在收到403代码时不断重试,android,android-volley,http-response-codes,Android,Android Volley,Http Response Codes,我还修改了重试策略,但它不起作用。代码如下: JsonObjectRequest getReq = new JsonObjectRequest(Request.Method.GET, GET_URL, null, new Response.Listener<JSONObject>() { @Override public void onResponse(JSONObject resp

我还修改了
重试策略
,但它不起作用。代码如下:

JsonObjectRequest getReq = new JsonObjectRequest(Request.Method.GET, GET_URL, null,

              new Response.Listener<JSONObject>() {
                  @Override
                  public void onResponse(JSONObject response) {
                     //bluh..

                    }
                },
                new Response.ErrorListener() {
                    @Override
                    public void onErrorResponse(VolleyError error) {
                    }
                }){
            @Override
            public Map<String, String> getHeaders() throws AuthFailureError {
                HashMap<String, String> headers = new HashMap<>();
                headers.put("Authorization", token);
                return headers;
            }
        };getReq.setRetryPolicy(new DefaultRetryPolicy(
                    0,
                    DefaultRetryPolicy.DEFAULT_MAX_RETRIES,
                    DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));
        AppController.getInstance().addToRequestQueue(getReq);
JsonObjectRequest getReq=newjsonobjectrequest(Request.Method.GET,GET_URL,null,
新的Response.Listener(){
@凌驾
公共void onResponse(JSONObject响应){
//蓝色。。
}
},
新的Response.ErrorListener(){
@凌驾
公共无效onErrorResponse(截击错误){
}
}){
@凌驾
公共映射getHeaders()引发AuthFailureError{
HashMap headers=新的HashMap();
headers.put(“授权”,令牌);
返回标题;
}
};getReq.setRetryPolicy(新的DefaultRetryPolicy(
0,
DefaultRetryPolicy.DEFAULT\u最大重试次数,
DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));
AppController.getInstance().addToRequestQueue(getReq);
有时它会重复6次。如何防止这种情况发生?

问题在“基本网络”类中(请参见注释掉的方框)

在我的例子中,这个实现违反了RFC并导致了巨大的服务器流量

问题在“基本网络”类中(参见注释掉的方框)


在我的例子中,这个实现违反了RFC并导致了巨大的服务器流量

如果您不想重试或减少
MAX\u重试次数,请尝试删除重试策略,即放入0。默认情况下,MAX\u重试次数为“1”。如果您不想重试或减少
MAX\u重试次数,请将
default\u BACKOFF\u MULT
传递为0,并尝试删除重试策略,即放入0。默认情况下,MAX\u重试次数为“1”。也可以传递
DEFAULT\u BACKOFF\u MULT
为0并重试
  if (responseContents != null) {
                networkResponse = new NetworkResponse(statusCode, responseContents,
                        responseHeaders, false, SystemClock.elapsedRealtime() - requestStart);
//                    if (statusCode == HttpStatus.SC_UNAUTHORIZED ||
//                            statusCode == HttpStatus.SC_FORBIDDEN) {
//                        attemptRetryOnException("auth",
//                                request, new AuthFailureError(networkResponse));
//                    } else
                        {
                        // TODO: Only throw ServerError for 5xx status codes.
                        throw new ServerError(networkResponse);
                    }
                } else {
                    throw new NetworkError(networkResponse);
                }