volley学习

来源:互联网 发布:linux安装kvm虚拟机 编辑:程序博客网 时间:2024/06/08 07:05

1.  volley默认超时时间:5s   (自己可以修改源码来进行设置默认时间)

     另外一种设置超时时间方法:setRetryPolicy(new DefaultRetryPolicy(20 * 1000, 1, 1.0f));

        参数含义:超时时间,最大重试次数,注意最后一个参数,它允许你指定一个退避乘数可以用来实现“指数退避”来从RESTful服务器请求数据。

        注:退避算法:主称为补偿算法,它可以为再次尝试传输而创建一个随机的等待时间,这样不会出现第2次冲突。

2.  volley中文乱码解决:

       (1)  修改源码---只要把HTTP.DEFAULT_CONTENT_CHARSET改成需要的编码(UTF-8)就可以了,默认为ISO-8859-1。

       (2)  在服务器的返回的数据的header的中contentType加上charset=UTF-8的声明

      (3) 当你无法修改服务器程序的时候,可以定义一个新的子类。覆盖parseNetworkResponse这个方法,直接使用UTF-8对服务            器的返回数据进行转码

          eg:

@Override
protected Response<String> parseNetworkResponse(NetworkResponse response) {
String str = null;
try {
str = new String(response.data, "utf-8");
} catch (Exception e) {
e.printStackTrace();
}
return Response.success(str, HttpHeaderParser.parseCacheHeaders(response));
}

3. 定制 Request 需实现两个抽象方法parseNetworkResponse()和 deliverResponse(),这两个方法很好理解,parseNetworkResponse()把获取到的数据解析成我们所定义的数据类型;deliverResponse()把所解析的数据通过回调接口回调给展示处。

4. 禁用缓存

    request.setShouldCache(false);



0 0
原创粉丝点击