Volley 框架

Volley但是说是把AsyncHttpClient和Universal-Image-Loader的优势集于了一身,既能够像AsyncHttpClient同样很是简单地进行HTTP通讯,也能够像Universal-Image-Loader同样轻松加载网络上的图片。除了简单易用以外,Volley在性能方面也进行了大幅度的调整,它的设计目标就是很是适合去进行数据量不大,但通讯频繁的网络操做,而对于大数据量的网络操做,好比说下载文件等,Volley的表现就会很是糟糕。html

  获取到一个RequestQueue对象,能够调用以下方法获取到:RequestQueue mQueue = Volley.newRequestQueue(context);  算法

  注意这里拿到的RequestQueue是一个请求队列对象,它能够缓存全部的HTTP请求,而后按照必定的算法并发地发出这些请求。json

基本上在每个须要和网络交互的Activity中建立一个RequestQueue对象就足够了。数组

接下来为了要发出一条HTTP请求,咱们还须要建立一个StringRequest对象,以下所示:缓存

public void volleyGet(){网络

StringRequest  request=new StringRequest(Method.GET, "url", new Listener<String>() {并发

@Overrideide

public void onResponse(String arg0) {性能

// TODO Auto-generated method stub学习

}

}, new Response.ErrorListener() {

 

@Override

public void onErrorResponse(VolleyError arg0) {

// TODO Auto-generated method stub

}

});

MyApplication.getHttpQueue().add(request);

}

 

public void volleyPost(String... param) {

HashMap<String, String> hm = new HashMap<String, String>();

hm.put("requestPurpose", "1");

hm.put("username", param[0]);

hm.put("userpassword", param[1]);

NormalPostRequest request = new NormalPostRequest("url", new Response.Listener<JSONObject>() {

@Override

public void onResponse(JSONObject arg0) {

// TODO Auto-generated method stub

}

}, new Response.ErrorListener() {

@Override

public void onErrorResponse(VolleyError arg0) {

// TODO Auto-generated method stub

}

}, hm);

MyApplication.getHttpQueue().add(request);

}

. JsonRequest的用法

学完了最基本的StringRequest的用法,咱们再来进阶学习一下JsonRequest的用法。相似于StringRequest,JsonRequest也是继承自Request类的,不过因为JsonRequest是一个抽象类,所以咱们没法直接建立它的实例,那么只能从它的子类入手了。JsonRequest有两个直接的子类,JsonObjectRequest和JsonArrayRequest,从名字上你应该能就看出它们的区别了吧?一个是用于请求一段JSON数据的,一个是用于请求一段JSON数组的。

至于它们的用法也基本上没有什么特殊之处,先new出一个JsonObjectRequest对象,以下所示:

  1. JsonObjectRequest jsonObjectRequest = new JsonObjectRequest("http://m.weather.com.cn/data/101010100.html", null,  
  2. new Response.Listener<JSONObject>() {  
  3. @Override  
  4. public void onResponse(JSONObject response) {  
  5. Log.d("TAG", response.toString());  
  6. }  
  7. }, new Response.ErrorListener() {  
  8. @Override  
  9. public void onErrorResponse(VolleyError error) {  
  10. Log.e("TAG", error.getMessage(), error);  
  11. }  
  12. });  
相关文章
相关标签/搜索