当前位置: 首页 > 面试题库 >

排球RequestQueue超时

徐淳
2023-03-14
问题内容
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,它更易于配置

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());
                            }
                        }));


 类似资料:
  • RequestQueue 是一个简单的类用来管理多个并发异步的 URL 请求。 示例代码: + (RQOperation *)operationWithRequest:(NSURLRequest *)request;- (RQOperation *)initWithRequest:(NSURLRequest *)request;

  • 嗨,我正在尝试使用排球库创建登录页面。当我运行应用程序,输入所需的凭据,最后点击登录按钮时,我的logcat显示此错误: 我不知道是什么导致了这个错误,这是我的登录活动: 请协助我。或者帮我找到一种更简单的方法来使用JSON和MYSQL数据库登录。谢谢 以下是我的AppController类:

  • 问题内容: com.android.volley.NoConnectionError:java.net.ProtocolException:未知方法“ PATCH”;必须是[OPTIONS,GET,HEAD,POST,PUT,DELETE,TRACE]中的一种 问题答案: 您确定使用的Volley Library版本正确吗?我刚刚在Lollipop中尝试了您的代码,它工作正常。如果您将Volley

  • 问题内容: 我是gulp.js的新用户。我想将所有非JavaScript文件都移至构建目录。我现在得到的是: 如您所见,它只匹配文件路径字符串中的第一个点,而不是我想要的最后一个。如何修改全局搜索字符串以使其符合我的要求? 问题答案: 尝试以下glob模式:

  • 本节暂未进行完全的重写,错误可能会很多。如果可能的话,请对照原文进行阅读。如果有报告本节的错误,将会延迟至重写之后进行处理。 此时我们已经有了一个包含有很多砖块和玩家的一个挡板的关卡。与经典的Breakout内容相比还差一个球。游戏的目的是让球撞击所有的砖块,直到所有的可销毁砖块都被销毁,但同时也要满足条件:球不能碰触屏幕的下边缘。 除了通用的游戏对象组件,球还需要有半径和一个布尔值,该布尔值用于

  • 一个球由球心和半径所定义。 构造函数 Sphere( center : Vector3, radius : Float ) center - 球心的位置,默认值是一个位于(0, 0, 0)的Vector3。 radius - 球的半径,默认值是-1。 创建一个新的Sphere。 属性 .center : Vector3 A Vector3定义了球心的位置,默认值位于(0, 0, 0)。 .radi