美文网首页
volley超时和重复请求问题

volley超时和重复请求问题

作者: 黄海佳 | 来源:发表于2017-06-30 11:08 被阅读317次

使用Volley获取和设置cookie

最近发现有两个现象:
  • 1 公司的一个接口,在ios上请求成功,Android这边超时。
  • 2 公司的一个接口,在ios请求后台显示请求一次,Android后台显示请求三次,但是查看log日志,自己手动调用mRequestQueue.add(request)以及mRequestQueue.start()的次数始终为1,最后百度了一下是volley的一个bug。
解决方案
方案一:设置
Request<String> req = new StringRequest(Request.Method.POST, url, adapter, adapter) {
    @Override
    protected Map<String, String> getParams() throws AuthFailureError {
        return RequestMap;
    }
};
req.setRetryPolicy(new DefaultRetryPolicy(10000,//默认超时时间,默认2500
        DefaultRetryPolicy.DEFAULT_MAX_RETRIES,//默认最大尝试次数
        DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));
MyVolley.getRequestQueue().add(req);

其中DEFAULT_BACKOFF_MULT​对于请求失败之后的请求,并不会隔相同的时间去请求Server,不会以线性的时间增长去请求,而是一个曲线增长,一次比一次长,如果backoff因子是2,当前超时为3,即下次再请求隔6S​

方案二:在HurlStack中的openConnection方法中,在相应段落增加
    connection.setChunkedStreamingMode(0)
另外:关于取消请求

Volley提供了强大的API取消未处理或正在处理的请求。取消请求最简单的方法是调用请求队列cancelAll(tag)的方法,前提是你在添加请求时设置了标记。这样就能使标签标记的请求挂起。
给请求设置标签:

request.setTag("My Tag");

使用ApplicationController添加使用了标签的请求到队列中:

ApplicationController.getInstance().addToRequestQueue(request, "My Tag");

取消所有指定标记的请求:

mRequestQueue.cancelAll("My Tag");

使用Volley获取和设置cookie

相关文章

  • volley超时和重复请求问题

    使用Volley获取和设置cookie 最近发现有两个现象: 1 公司的一个接口,在ios上请求成功,Androi...

  • 使用Volley获取和设置cookie

    volley超时和重复请求问题 以前做APP项目的时候都是会带用户ID去验证信息,目前新的一个项目不用传用户ID,...

  • volley的Post请求几种方式

    这几天帮网友解决volley请求的问题,才发现volley真的很难用。如果新项目就不要用volley网络框架了。旧...

  • 如何实现下单的幂等性

    用户创建订单的时候,因为重复点击(前端bug)或者网络超时重传等原因,会导致重复请求,那么系统如何即使有重复请求也...

  • Java知识点总结业务场景篇6-10

    六、Ajax请求Session超时问题 我在做项目时有时会遇到session超时问题,如果session超时,平常...

  • Volley源码介绍最全的一篇

    1. 功能介绍 1.1. Volley Volley 是 Google 推出的 Android 异步网络请求框架和...

  • Volley使用总结及源码分析(一)

    Volley Volley 是 Google 推出的 Android 异步网络请求框架和图片加载框架。在 Goog...

  • win+r cmd ping 请求超时 请求超时 请求超时 请求超时 数据包 已发送 =4 已接受 =0 丢...

  • Android异步网络请求框架-Volley

    Android 异步网络请求框架-Volley 1. 功能介绍 1.1. Volley Volley 是 Goog...

  • Volley简单用法

    volley是当前Android中比较常用的网络请求框架。 volley请求如同我们常用的http请求方式一样同样...

网友评论

      本文标题:volley超时和重复请求问题

      本文链接:https://www.haomeiwen.com/subject/dgebcxtx.html