我们在开发程序的时候,网络请求是必不可少的一项操作。然而我们使用HttpClient等进行直接开发时,会发现我们所写的程序的网络请求会出现各种各样的问题,这时候,就会去寻找网络上的开源网络请求框架。
Volley框架是谷歌公司在2013年发布的一个开源框架。能使网络通信更快,更简单,更健壮。Volley特别适用于那些数据量不大但是通信频繁的网络请求操作。首先我们来介绍下Volley的适用方法。
1.引入jar包
Volley框架需要引入他的jar包,这个大家可以在网上自行搜索下载并导入。
2.建立请求队列
Volley框架有着自己的请求队列管理机制,可以控制每一个请求的建立和取消,非常方便和安全。这样就可以随时控制指定的请求在指定的时间结束。防止一些无谓的请求发生浪费资源。
请求队列需要全局存在的,这样才能管理。所以我们一般把请求队列建立在Application里面。
<span style="font-size:18px;">public static RequestQueue queue=Volley.newRequestQueue(getApplicationContext);public static RequestQueue getHttpQueue(){return queue;}</span>
3.get请求的实现
直接通过队列添加JsonObjectRequest对象,第一个参数为请求模式,第二个参数为URL地址,第三个参数为请求成功返回监听器,第四个参数为返回失败的监听器。当然最后别忘了把我们的请求加入到请求队列。
<span style="font-size:18px;">StringRequest request=new StringRequest(Request.Method.GET, "url", new Response.Listener<String>() {@Overridepublic void onResponse(String s) {}}, new Response.ErrorListener() {@Overridepublic void onErrorResponse(VolleyError volleyError) {}});
request.setTag("request");
AppContext.getHttpQueue().add(request);</span>
后面的加入表示是位置在取消请求时根据这个标记来取消该请求。
4.post请求
post请求和get的请求基本类似,但是需要在方法体内要重写getParams方法来将我们需要传递的数据存入到Map集合中来进行传递。
StringRequest requestPost=new StringRequest(Request.Method.GET, "url", new Response.Listener<String>() {@Overridepublic void onResponse(String s) {}}, new Response.ErrorListener() {@Overridepublic void onErrorResponse(VolleyError volleyError) {}}){@Overrideprotected Map<String, String> getParams() throws AuthFailureError {HashMap<String,String> map=new HashMap<>();map.put("aaa","aaaaa");return map;}};request.setTag("requestPost");AppContext.getHttpQueue().add(requestPost);
Volley的简单介绍将到这里~如果发现什么好的地方 会再来补充的~