Volley的简单使用--请求网络

原创 2016年08月28日 17:25:19
    在项目中无可厚非的要使用网络请求,这里对简单好用的谷歌的儿子volley,
    适用频繁的、数据量小的网络请求;下面简单说下:

    Volley中的RequestQueue 和 Request
        RequestQueue 用来执行请求的请求队列
        Request 用来构造一个请求对象,有以下几种类型: 
            StringRequest 响应的主体为字符串
            JsonArrayRequest 发送和接收JSON数组
            JsonObjectRequest 发送和接收JSON对象
            ImageRequest 发送和接收Image
    使用Volley:

1、发起一个http的请求,首先就需要一个RequestQueue 对象;

RequestQueue mQueue = Volley.newRequestQueue(context);
    在每一个需要和网络交互的Activity中创建一个RequestQueue对象就足够了;不必为每一次HTTP请求都创建一个RequestQueue对象,
    RequestQueue是一个请求队列对象,它可以缓存所有的HTTP请求,然后按照一定的算法并发地发出这些请求。

2、还需要创建一个StringRequest对象;默认为GET请求,这里使用默认的方式,以百度首页为例:

StringRequest request= new StringRequest("http://www.baidu.com",  
                        new Response.Listener<String>() {  
                            @Override  
                            public void onResponse(String response) {  
                                /**请求成功,在此处理结果*/ 
                            }  
                        }, new Response.ErrorListener() {  
                            @Override  
                            public void onErrorResponse(VolleyError error) {  
                                /**请求失败,在此处理结果*/ 
                            }  
                        });  

3、最后要将StringRequest对象添加到RequestQueue里面

mQueue.add(request);

注意:volley是需要访问网络,记得在清单中添加。

总的来说使用Volley,分三步走:

    1、创建一个RequestQueue对象。
    2、创建一个StringRequest对象。
    3、将StringRequest对象添加到RequestQueue里面。

下面用代码简单说下用post请求的方式(带请求头,带参数,如没有可不写):
        RequestQueue mQueue = Volley.newRequestQueue(context);
        StringRequest request = new StringRequest(Request.Method.POST, "地址",
                new Response.Listener<String>() {
                    @Override
                    public void onResponse(String s) {
                        /**在此处理请求成功的结果*/

                    }
                }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError volleyError) {
                /**在此处理请求失败的结果*/
            }
        }) {
            //一般请求都会有头信息,复写该方法,在次添加
            @Override
            public Map<String, String> getHeaders() throws AuthFailureError {
                HashMap<String, String> map = new HashMap<>();
                map.put("键","值");
                return map;
            }
            //其次,我们还会有一些请求的参数,复写该方法:
            @Override
            protected Map<String, String> getParams() throws AuthFailureError {
                Map<String, String> params = getHeaders();
                params.put("键","值");    
                return params;
            }
        };
        mQueue.add(request);

未完,待后续

Volley的使用(一) get请求和获取网络图片

什么是Volley以及为什么使用Volley在我们android开发过程中不可避免的要进行网络访问,android为我们提供了两种方式来访问网络:HttpURLConnection和HttpClien...
  • baidu_31093133
  • baidu_31093133
  • 2016年05月06日 00:05
  • 531

volley3 网络请求的取消

网络请求的取消
  • zrjliming
  • zrjliming
  • 2016年08月26日 09:21
  • 2752

Volley源码解析(三)网络请求流程

volley封装的很好,使用起来很方便,在一篇博客中,我们学些了volley进行网络请求的三个步骤,以及请求不同格式定义不同的Request,但是对Volley的源码我们还不是很清楚,就让我们一起来阅...
  • chengshuyuan_uestc
  • chengshuyuan_uestc
  • 2016年06月24日 19:10
  • 2868

Volley框架请求取消的实现

volley网络请求取消的实现
  • aq15756005983
  • aq15756005983
  • 2017年04月18日 16:50
  • 1080

网络通信框架Volley使用详细说明

Volley主要提供获取JSON对象和图片加载功能。
  • xyz_lmn
  • xyz_lmn
  • 2013年10月06日 21:50
  • 110728

Volley的网络请求有内存溢出现象学到的一点知识

今天进行程序内存溢出/泄露测试,使用的是LeakCanary,发现除了几个上一个开发者开发习惯问题(什么都喜欢使用静态变量,而且是public的到处调用)外,基本都是报Volley的错误监听回调有溢出...
  • xfnbing
  • xfnbing
  • 2015年12月19日 14:56
  • 1273

Volley二次封装,实现网络请求缓存

Android目前很多同学使用Volley请求网络数据,但是Volley没有对请求过得数据进行缓存,因此需要我们自己手动缓存。 一下就是我的一种思路,仅供参考 NetWorkHelper---对...
  • zxm317122667
  • zxm317122667
  • 2015年11月04日 11:13
  • 4799

Android中使用Volley开源库进行Http网络请求(POST方式)

之前使用了开源网络请求库Volley进行了Http GET请求。这次我们讨论使用Volley进行POST请求。POST请求比GET稍微复杂一点点。可以认为是建立在GET的基础上。POST使发送的url...
  • CHENYUFENG1991
  • CHENYUFENG1991
  • 2015年07月15日 21:19
  • 1866

Android Studio中使用开源库volley进行网络访问简单示例

volley特性 :    1>使用volley开源库进行网络访问,使网络访问更简单,快速,健壮    2>可以将网络访问与activity生命周期相关联 1.环境     Android...
  • u013984533
  • u013984533
  • 2016年05月16日 22:31
  • 1151

Volley高并发处理网络请求(No1)

这是我的第一篇博客,那些地方不规范多多包涵,声明转载他人的。最近学习了Volley框架,感觉在处理网络轻量级数据时特别好用,所以将自己学习过程觉得好的2篇文章拿来分享!! No 001:转载于点击打开...
  • Demo006
  • Demo006
  • 2016年04月27日 22:38
  • 1143
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Volley的简单使用--请求网络
举报原因:
原因补充:

(最多只允许输入30个字)