当有缓慢的请求的Andr​​oid排球双岗 [英] Android Volley double post when have slow request

查看:392
本文介绍了当有缓慢的请求的Andr​​oid排球双岗的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个缓慢的网络上凌空POST请求的问题。每次我看到 BasicNetwork.logSlowRequests 在我的LogCat中,我的POST请求被执行两次或更多次导致多个(2个或更多)的帖子1请求。我已经设置了重试的政策为0,但它并不能帮助。

I have a problem with Volley POST request on slow network. Everytime I see BasicNetwork.logSlowRequests in my LogCat, my POST request is executed twice or more resulting multiple (2 or more) postings for 1 request. I already set the retry policy to 0, but It doesn't help.

这是我的LogCat中

This is my LogCat

一月3号至16日:31:35.674:D /排球(5984):[19807]   BasicNetwork.logSlowRequests:对于请求HTTP响应=< []   HTTP:// [MYSERVER] / API /地方0xfa7d0c33师范大学1> [寿命= 3824],   [大小= 313],[RC = 200],[retryCount = 0] 1月3日至16日:31:35.704:   D /凌空(5984):[1] Request.finish:3853毫秒:[]   HTTP:// [MYSERVER] / API /地方0xfa7d0c33师范大学1

03-16 01:31:35.674: D/Volley(5984): [19807] BasicNetwork.logSlowRequests: HTTP response for request=<[ ] 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 0xfa7d0c33 NORMAL 1

这是我的code

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

请帮忙,我拼命地寻找解决方案这个问题。

Please help, I desperately finding solution for this problem.

推荐答案

我发现了双岗的解决方案,我只是将超时设置为0。

I found the solution for the double post, I just set the timeout to 0.

这篇关于当有缓慢的请求的Andr​​oid排球双岗的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆