Skip to content Skip to sidebar Skip to footer

Volley Requestqueue Timeout

RequestQueue mRequestQueue = Volley.newRequestQueue(getApplicationContext()); mRequestQueue.add(new JsonObjectRequest(Method.GET, cityListUrl, null, new Listener(

Solution 1:

You should set the request's RetryPolicy:

myRequest.setRetryPolicy(newDefaultRetryPolicy(
                MY_SOCKET_TIMEOUT_MS, 
                DefaultRetryPolicy.DEFAULT_MAX_RETRIES, 
                DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));

This would change your code to:

RequestQueuemRequestQueue= Volley.newRequestQueue(getApplicationContext());
JsonObjectRequestrequest=newJsonObjectRequest(Method.GET, cityListUrl, null, newListener<JSONObject>() {
        publicvoidonResponse(JSONObject jsonResults) {
            //Any Call
        }
    }, newErrorListener(){
        publicvoidonErrorResponse(VolleyError arg0) {
            //Any Error log
        }
    }
);


intsocketTimeout=30000;//30 seconds - change to what you wantRetryPolicypolicy=newDefaultRetryPolicy(socketTimeout, DefaultRetryPolicy.DEFAULT_MAX_RETRIES, DefaultRetryPolicy.DEFAULT_BACKOFF_MULT);
request.setRetryPolicy(policy);
mRequestQueue.add(request);

If you are only just getting started with Volley, you might want to instead consider droidQuery, which is a little easier to configure:

int socketTimeout = 30000;
$.ajax(newAjaxOptions().url(cityListUrl)
                        .timeout(socketTimeout)
                        .success(newFunction() {
                            publicvoidinvoke($ d, Object... args) {
                                JSONObject jsonResults = (JSONObject) args[0];
                                //Any call
                            }
                        })
                        .error(newFunction() {
                            publicvoidinvoke($ d, Object... args) {
                                AjaxError error = (AjaxError) args[0];
                                Log.e("Ajax", error.toString());
                            }
                        }));

Solution 2:

Something like this

RetryPolicyretryPolicy=newDefaultRetryPolicy(
    YOUR_TIMEOUT_MS,
    YOUT_MAX_RETRIES,
    YOUR_BACKOFF_MULT
);

JsonObjectRequestrequest=newJsonObjectRequest(...);
request.setRetryPolicy(retryPolicy);

Or you could implement your own RetryPolicy.

Solution 3:

This is worked for me :

RequestQueuemRequestQueue= Volley.newRequestQueue(getApplicationContext());
JsonObjectRequestrequest=newJsonObjectRequest(Method.GET, cityListUrl, null, newListener<JSONObject>() {
        publicvoidonResponse(JSONObject jsonResults) {
            //Any Call
        }
    }, newErrorListener(){
        publicvoidonErrorResponse(VolleyError arg0) {
            //Any Error log
        }
    }
);


intsocketTimeout=30000;//30 seconds - change to what you wantRetryPolicypolicy=newDefaultRetryPolicy(socketTimeout, DefaultRetryPolicy.DEFAULT_MAX_RETRIES, DefaultRetryPolicy.DEFAULT_BACKOFF_MULT);
request.setRetryPolicy(policy);
mRequestQueue.add(request);

Solution 4:

voidRequestVolley() {

    // Instantiate the RequestQueeRequestQueue queue = Volley.newRequestQueue(getApplication());

    //create new volley requestJsonObjectRequest requestNew = newJsonObjectRequest(Request.Method.GET, Url, null, createMyReqSuccessListener(), createMyReqErrorListener());

    //Response.Listener and Error.Listener defined afterwards//first param is TIMEOUT ...integer//second param is number of retries ...integer//third is backoff multiplier ...integer

    requestNew.setRetryPolicy(newDefaultRetryPolicy(6000, 1, 1));

    queue.add(requestNew);
}

privateResponse.Listener < JSONObject > createMyReqSuccessListener() {
    returnnewResponse.Listener < JSONObject > () {
        @OverridepublicvoidonResponse(JSONObject response) {

            //do something
        }
    };
}

privateResponse.ErrorListenercreateMyReqErrorListener() {
    returnnewResponse.ErrorListener() {
        @OverridepublicvoidonErrorResponse(VolleyError error) {

            //do something
        }
    };
}

Solution 5:

String url = "https://api.joind.in/v2.1/events?start=" + start + "&resultsperpage=20&format=json";
Log.i("DREG", "onLoadMoreItems: " + url);
final StringRequest stringRequest = newStringRequest(Request.Method.GET, url,
        newResponse.Listener<String>() {
            @OverridepublicvoidonResponse(String response) {
                // Add Code Here
            }
        },
        newResponse.ErrorListener() {
            @OverridepublicvoidonErrorResponse(VolleyError error) {
                    if (error instanceofNetworkError) {
                    } elseif (error instanceofServerError) {
                    } elseif (error instanceofAuthFailureError) {
                    } elseif (error instanceofParseError) {
                    } elseif (error instanceofNoConnectionError) {
                    } elseif (error instanceofTimeoutError) {
                        Toast.makeText(getContext(),
                                "Oops. Timeout error!",
                                Toast.LENGTH_LONG).show();
                    }
            }
        }
);
stringRequest.setRetryPolicy(newDefaultRetryPolicy(
        10000,
        DefaultRetryPolicy.DEFAULT_MAX_RETRIES,
        DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));
requestQueue.add(stringRequest);

Post a Comment for "Volley Requestqueue Timeout"