Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/202.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 截击请求重试未按预期工作_Android_Android Volley - Fatal编程技术网

Android 截击请求重试未按预期工作

Android 截击请求重试未按预期工作,android,android-volley,Android,Android Volley,我有以下截击请求,但重试不会在出现错误时重试请求,例如,请求时突然没有网络 Response.ErrorListener errorListener = new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError error) { } }; Request myReq = new Request(Request.Method.POST, url, errorListen

我有以下
截击请求
,但重试不会在出现错误时重试请求,例如,请求时突然没有网络

Response.ErrorListener errorListener = new Response.ErrorListener() {
    @Override
    public void onErrorResponse(VolleyError error) {
    }
};

Request myReq = new Request(Request.Method.POST, url, errorListener) {
    @Override
    protected Response parseNetworkResponse(NetworkResponse response) {}

    @Override
    protected void deliverResponse(Object response) {}

    @Override
    public Map<String, String> getParams() throws AuthFailureError {
        return null;
    }

};

myReq.setRetryPolicy(new DefaultRetryPolicy(Constants.DEFAULT_CONNECTION_TIMEOUT,
                    10,
                    DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));

queue.add(myReq);
Response.ErrorListener ErrorListener=新建Response.ErrorListener(){
@凌驾
公共无效onErrorResponse(截击错误){
}
};
Request myReq=新请求(Request.Method.POST、url、errorListener){
@凌驾
受保护的响应parseNetworkResponse(NetworkResponse响应){}
@凌驾
受保护的void deliverResponse(对象响应){}
@凌驾
公共映射getParams()引发AuthFailureError{
返回null;
}
};
myReq.setRetryPolicy(新的DefaultRetryPolicy(Constants.DEFAULT\u CONNECTION\u TIMEOUT,
10,
DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));
添加(myReq);
有什么我遗漏的吗?

公共静态无效请求(上下文上下文、最终截击回调requestCallback、int requestMethod、字符串requestUrl、对象postObject、类类类型、布尔值isAuthenticated、字符串标记){
 public static <T> void request(Context context, final VolleyCallback<T> requestCallback, int requestMethod, String requestUrl, Object postObject, Class<T> classType, boolean isAuthenticated, String tag) {
    GsonRequest<T> request = new GsonRequest<>(
            context,
            requestMethod,
            requestUrl,
            new Gson().toJson(postObject),
            classType,
            isAuthenticated,
            new Response.Listener<T>() {
                @Override
                public void onResponse(T response) {
                    onResponseListener(response, requestCallback);
                }
            },
            onErrorListener(context, requestCallback)
    );
    request.setTag(tag);
    VolleyRequestQueue.getInstance(context).addToRequestQueue(request);
}    

public <T> void addToRequestQueue(Request<T> request) {
    request.setRetryPolicy(new DefaultRetryPolicy(PrjConfig.REQUEST_TIMEOUT_MILLIS, PrjConfig.REQUEST_RETRIES, PrjConfig.REQUEST_TIMEOUT_MULTIPLIER));
    request.setShouldCache(false);
    getRequestQueue().add(request);
}    
GsonRequest request=新的GsonRequest( 上下文 请求方法, 请求URL, 新的Gson().toJson(postObject), 类类型, 我得到了认证, 新的Response.Listener(){ @凌驾 公共响应(T响应){ onResponseListener(响应、请求回调); } }, onErrorListener(上下文、requestCallback) ); request.setTag(tag); getInstance(上下文).addToRequestQueue(请求); } 公共无效addToRequestQueue(请求){ request.setRetryPolicy(新的DefaultRetryPolicy(PrjConfig.request\u TIMEOUT\u MILLIS,PrjConfig.request\u RETRIES,PrjConfig.request\u TIMEOUT\u乘数)); request.setShouldCache(false); getRequestQueue().add(请求); }
介意解释一下吗?哦,你是对的,我的答案不清楚,但我认为你应该使用JsonRequest而不是Request。你想发布什么数据?它不会重试,因为可能没有什么可以重试的。你收到服务器错误了吗?lol我删除了数据代码段,但实际上它在
getParams()
中不应该返回null,所以我的情况是,我没有收到网络错误,但它没有重试,或者它希望我手动重试?我明白了。我之所以投反对票是因为:。请编辑,我将收回我的反对票。