android开发分享排球RequestQueue超时

RequestQueue mRequestQueue = Volley.newRequestQueue(getApplicationContext()); mRequestQueue.add(new JsonObjectRequest(Method.GET, cityListUrl, null, new Listener<JSONObject>() { public void onResponse(JSONObject jsonResults) { //Any Call } }, new ErrorListener() { public void onErrorResponse(VolleyError arg0) { //Any Error log } } )); 

这是我的请求调用,我想改变或设置请求超时。 反正可能吗?

    您应该设置请求的RetryPolicy :

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

    这会将您的代码更改为:

     RequestQueue mRequestQueue = Volley.newRequestQueue(getApplicationContext()); JsonObjectRequest request = new JsonObjectRequest(Method.GET, cityListUrl, null, new Listener<JSONObject>() { public void onResponse(JSONObject jsonResults) { //Any Call } }, new ErrorListener(){ public void onErrorResponse(VolleyError arg0) { //Any Error log } } ); int socketTimeout = 30000;//30 seconds - change to what you want RetryPolicy policy = new DefaultRetryPolicy(socketTimeout, DefaultRetryPolicy.DEFAULT_MAX_RETRIES, DefaultRetryPolicy.DEFAULT_BACKOFF_MULT); request.setRetryPolicy(policy); mRequestQueue.add(request); 

    如果您刚刚开始使用Volley ,则可能需要考虑使用droidQuery ,该configuration稍微容易一些:

     int socketTimeout = 30000; $.ajax(new AjaxOptions().url(cityListUrl) .timeout(socketTimeout) .success(new Function() { public void invoke($ d, Object... args) { JSONObject jsonResults = (JSONObject) args[0]; //Any call } }) .error(new Function() { public void invoke($ d, Object... args) { AjaxError error = (AjaxError) args[0]; Log.e("Ajax", error.toString()); } })); 

    像这样的东西

     RetryPolicy retryPolicy = new DefaultRetryPolicy( YOUR_TIMEOUT_MS, YOUT_MAX_RETRIES, YOUR_BACKOFF_MULT ); JsonObjectRequest request = new JsonObjectRequest(...); request.setRetryPolicy(retryPolicy); 

    或者你可以实现你自己的RetryPolicy

    这对我有效:

    以上就是android开发分享排球RequestQueue超时相关内容,想了解更多android开发(异常处理)及android游戏开发关注计算机技术网(www.ctvol.com)!)。

     RequestQueue mRequestQueue = Volley.newRequestQueue(getApplicationContext()); JsonObjectRequest request = new JsonObjectRequest(Method.GET, cityListUrl, null, new Listener<JSONObject>() { public void onResponse(JSONObject jsonResults) { //Any Call } }, new ErrorListener(){ public void onErrorResponse(VolleyError arg0) { //Any Error log } } ); int socketTimeout = 30000;//30 seconds - change to what you want RetryPolicy policy = new DefaultRetryPolicy(socketTimeout, DefaultRetryPolicy.DEFAULT_MAX_RETRIES, DefaultRetryPolicy.DEFAULT_BACKOFF_MULT); request.setRetryPolicy(policy); mRequestQueue.add(request); 

     void RequestVolley() { // Instantiate the RequestQuee RequestQueue queue = Volley.newRequestQueue(getApplication()); //create new volley request JsonObjectRequest requestNew = new JsonObjectRequest(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(new DefaultRetryPolicy(6000, 1, 1)); queue.add(requestNew); } private Response.Listener < JSONObject > createMyReqSuccessListener() { return new Response.Listener < JSONObject > () { @Override public void onResponse(JSONObject response) { //do something } }; } private Response.ErrorListener createMyReqErrorListener() { return new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError error) { //do something } }; } 

     String url = "https://api.joind.in/v2.1/events?start=" + start + "&resultsperpage=20&format=json"; Log.i("DREG", "onLoadMoreItems: " + url); final StringRequest stringRequest = new StringRequest(Request.Method.GET, url, new Response.Listener<String>() { @Override public void onResponse(String response) { // Add Code Here } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError error) { if (error instanceof NetworkError) { } else if (error instanceof ServerError) { } else if (error instanceof AuthFailureError) { } else if (error instanceof ParseError) { } else if (error instanceof NoConnectionError) { } else if (error instanceof TimeoutError) { Toast.makeText(getContext(), "Oops. Timeout error!", Toast.LENGTH_LONG).show(); } } } ); stringRequest.setRetryPolicy(new DefaultRetryPolicy( 10000, DefaultRetryPolicy.DEFAULT_MAX_RETRIES, DefaultRetryPolicy.DEFAULT_BACKOFF_MULT)); requestQueue.add(stringRequest); 

      本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

      ctvol管理联系方式QQ:251552304

      本文章地址:https://www.ctvol.com/addevelopment/512513.html

      (0)
      上一篇 2020年11月27日
      下一篇 2020年11月27日

      精彩推荐