首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >安卓截击双开机自检请求慢时

安卓截击双开机自检请求慢时
EN

Stack Overflow用户
提问于 2014-03-16 03:01:22
回答 18查看 54.8K关注 0票数 61

我有一个问题,在慢速网络上的截击POST请求。每当我在我的LogCat中看到BasicNetwork.logSlowRequests时,我的POST请求就会被执行两次或更多,从而对一个请求执行多个(2个或更多)POST。我已经将重试策略设置为0,但它没有帮助。

这是我的LogCat

03-16 01:31:35.674: D/Volley(5984):19807 BasicNetwork.logSlowRequests: request=< http://[myserver]/api/places的HTTP响应](http://[myserver]/api/places) 0xfa7d0c33 NORMAL 1> lifetime=3824,size=313,rc=200,retryCount=0 03-16 01:31:35.704: D/Volley(5984):1 Request.finish: 3853 ms:http://[myserver]/api/places](http://[myserver]/api/places) 0xfa7d0c33 NORMAL 1

这是我的代码

代码语言:javascript
复制
JSONObject body = new JSONObject();
try {
    body.put(PROTO_BODY_AUTHORIZATION, Sessions.getActiveSession().getToken());
} catch (JSONException e) {
    e.printStackTrace();
}

JsonObjectRequest request = new JsonObjectRequest(
        Request.Method.POST,
        context.getResources().getString(R.string.server_address) + "/places",
        body,
        callback,
        new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {
                Toast.makeText(context, error.getMessage(), Toast.LENGTH_LONG).show();
            }
        }
);

request.setRetryPolicy(
        new DefaultRetryPolicy(
                DefaultRetryPolicy.DEFAULT_TIMEOUT_MS,
                0,
                DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));
    getRequestQueue().add(request);

请帮帮忙,我正在拼命寻找解决这个问题的办法。

EN

回答 18

Stack Overflow用户

回答已采纳

发布于 2015-06-17 18:36:42

将以下值添加到您的请求对象中:

代码语言:javascript
复制
request.setRetryPolicy(new DefaultRetryPolicy(
    DefaultRetryPolicy.DEFAULT_TIMEOUT_MS * 2,
    DefaultRetryPolicy.DEFAULT_MAX_RETRIES,
    DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));

这里:请求是JsonObjectRequest的对象。根据Volley中DefaultRetryPolicy类的默认超时值修改乘法器的值。

也可以将第一个参数设置为0,如下所示:

代码语言:javascript
复制
request.setRetryPolicy(new DefaultRetryPolicy(
    0,
    DefaultRetryPolicy.DEFAULT_MAX_RETRIES,
    DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));
票数 51
EN

Stack Overflow用户

发布于 2015-03-13 00:40:23

仅仅将RetryPolicy中的超时设置为0太小了。在检查源之后,您必须实际设置最大重试次数< 0,因为它正在检查当前的<=最大值...

我修复了双重发布,将策略设置为以下内容

代码语言:javascript
复制
new DefaultRetryPolicy(0, -1, DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));
票数 20
EN

Stack Overflow用户

发布于 2014-04-03 17:34:28

我找到了双post的解决方案,我只是将超时设置为0。

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22428343

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档