当前位置:必发365电子游戏 > 编程 > volley为我们提供了重试策略,简单说说volley
volley为我们提供了重试策略,简单说说volley
2019-12-19

图片:

调用百度api博客园火热选拔接口,使用了volley,简单说说volley get的呼吁情势的施用

图片 1

header的设置和伏乞参数的设置,见代码如下:

上边只是暧昧的牵线,大家能够对照本人的主见,看看自个儿是还是不是有哪些思量不周的(假使是您兑现如此一个框架的话卡塔尔(英语:State of Qatar)

 private void getWeixinNews() {
        StringBuilder sb = new StringBuilder();
        try {
            sb.append("?num=").append(10).append("&rand=").append(1).append("&word=").append((URLEncoder.encode("西游记","UTF-8")).toString()).
                    append("&page=").append(1).append("&src=").append((URLEncoder.encode("人民日报","UTF-8")).toString());
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }
        stringRequest = new StringRequest(Request.Method.GET, "http://apis.baidu.com/txapi/weixin/wxhot"+sb.toString(), new Response.Listener<String>() {
            @Override
            public void onResponse(String response) {
                Log.d("TAG", response);
                parseJson(response);
            }
        }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {
                Log.e("TAG", error.getMessage(), error);
            }
        }) {
            @Override
            public Map<String, String> getHeaders() throws AuthFailureError {
                Map<String, String> headers = new HashMap<String, String>();
                headers.put("Charset", "UTF-8");
                headers.put("Content-Type", "application/x-javascript");
                headers.put("Accept-Encoding", "gzip,deflate");
                headers.put("apikey", "f8072b317a936623251258810df09d4e");
                return headers;
            }

        };
    }

    private void parseJson(String response) {
        Gson gson = new Gson();
        BigWeiXin bigWeiXin = gson.fromJson(response, BigWeiXin.class);
        List<WeiXin> newslist = bigWeiXin.getNewslist();
        for (WeiXin weixin : newslist) {
            Log.d("TAG", "ctime is " + weixin.getCtime());
            Log.d("TAG", "title is " + weixin.getTitle());
            Log.d("TAG", "description is " + weixin.getDescription());
            Log.d("TAG", "picUrl is " + weixin.getPicUrl());
            Log.d("TAG", "url is " + weixin.getUrl());
        }
    }

1,Request的计划,大家在获取response之后,大家也许依照项目要求希望有例外情势的数额(比如string,bitmap,jsonObject卡塔尔,volley使用抽象编制程序,让大家得以持续Request完毕协调对response的剖判方法(意味着处理volley为大家提供的StringRequest类等,大家自定义request卡塔尔国

  

2,重试计策,网络诉求恐怕因为互连网原因战败(比如手提式有线电话机断网了卡塔尔国,volley为我们提供了重试计策

3,终止乞请,例如央浼数据途中,大家期待甘休该央浼

4,request在队列中优先级的主题材料,举例我们某些央求比较急迫,就相应排在队列的前头

5,重复诉求的难题,利用有两个相仿的request在队列之中,要求到中间八个,其余的可能就不要供给了,直接从缓存中取

6,异常的管理,比方io,403,402等授权错

7,地址重定向管理

8,网络难点的管理,举个例子大家断网了,volley使用了network这么些类来处理那生机勃勃类标题

volley为我们提供了重试策略,简单说说volley。9,使用HttpClient照旧url.openConnection(卡塔尔去伏乞数据吧?

10,缓存的读取和存款和储蓄,我们呼吁到网络数据之后,能够存入本地缓存

11,怎么着设置央浼日志来记录乞求音信,用于调节和测验?

12,对于缓存写入和读取的频率优化

13,图片央求的拍卖