什么是Volley

Google I/O 2013上,Volley发布了。Volley是Android平台上的网络通信库,能使网络通信更快,更简单,更健壮。
这是Volley名称的由来: a burst or emission of many things or a large amount at once

特点

支持JSON,图片,二进制文本,内存和磁盘缓存,强力的自定义能力,debug和跟踪工具

如何获得?

我在 云盘 放了编译好的 http://yunpan.cn/cg7S8awftBsmp 访问密码 b1bf

怎么用?

  1. 构建一个“请求队列“RequestQueue
  2. 构建请求Request,支持 StringRequest,JsonRequest,并可以自定义Request
  3. 构建 回调监听器 ,它将在请求处理完成后被调用。
  4. 将请求添加到队列

演示代码

简单的http方式的GET 演示:

public class SimpleGetActivity extends Activity {
RequestQueue mRequestQueue;
TextView txt_msg; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.simple_get);
txt_msg = (TextView) findViewById(R.id.txt_msg); mRequestQueue = Volley.newRequestQueue(this);
} public void btn1OnClick(View v) {
String url = "http://www.baidu.com"; StringRequest req = new StringRequest(Method.GET, url,
responseListener, mErrorListener); mRequestQueue.add(req);
} Listener<String> responseListener =new Listener<String>() { @Override
public void onResponse(String str1) {
txt_msg.setText(str1);
}
}; ErrorListener mErrorListener = new ErrorListener() { @Override
public void onErrorResponse(VolleyError volleyError) { Toast.makeText(getBaseContext(), volleyError.getMessage(), 0).show();
}
}; }

使用POST方式发送参数

public class ParasPostActivity extends Activity {
RequestQueue mRequestQueue;
TextView txt_msg; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_paras_post);
txt_msg = (TextView) findViewById(R.id.txt_msg); mRequestQueue = Volley.newRequestQueue(this);
} public void btn1OnClick(View v) {
String url = Constants.URL_FOR_DEMO1; StringRequest req = new StringRequest(Method.POST, url,
responseListener, mErrorListener){
@Override
protected Map<String, String> getParams()
throws AuthFailureError {
return new ApiParams().with("key1", "v1").with("key2", "v2");
}
};
mRequestQueue.add(req);
} Listener<String> responseListener =new Listener<String>() { @Override
public void onResponse(String str1) {
txt_msg.setText(str1);
}
}; ErrorListener mErrorListener = new ErrorListener() { @Override
public void onErrorResponse(VolleyError volleyError) { Toast.makeText(getBaseContext(), volleyError.getMessage(), 0).show();
}
}; }

注意传参时,是通过匿名类实现的,重载了getParams 方法

参考:

http://blog.csdn.net/t12x3456/article/details/9221611

me.storm.volley 示例

最新文章

  1. mac ssh localhost
  2. HYSBZ 4551 (树状数组) 采花
  3. win8 vs2010 openni2 配置
  4. bower 问题
  5. 跟随标准与Webkit源码探究DOM -- 获取元素之getElementsByName
  6. gtest功能测试一
  7. 过程式编程 drawShapes
  8. UVALive 5111 Soccer Teams (动态规划)
  9. cflow察看工程函数调用关系+Linux 0.11 内核实验环境
  10. 基于visual Studio2013解决算法导论之013基数排序
  11. Xcode使用小结1
  12. crypto加密
  13. spring data redis template GenericJackson2JsonRedisSerializer的使用
  14. [Python数据挖掘]第8章、中医证型关联规则挖掘
  15. 404.17 - 动态内容通过通配符 MIME 映射映射到静态文件处理程序
  16. I2C总线协议图解
  17. 深入理解类成员函数的调用规则(理解成员函数的内存为什么不会反映在sizeof运算符上、类的静态绑定与动态绑定、虚函数表)
  18. 虚拟机centos 7联网设置之NAT方式
  19. Vue -- vue-cli(vue脚手架) npm run build打包优化
  20. 这个不是第一次作业----艰难的安装Android studio历程

热门文章

  1. Java 8 – Filter a Map examples
  2. IDEA快捷键收集
  3. python 元类(metaclass)
  4. php分享十五:php的数据库操作
  5. MySql(九):MySQL性能调优——Schema设计的性能优化
  6. virtualbox和vagrant卸载脚本在macbook
  7. jquery 获取URL参数并转码的例子
  8. Push UIViewController with different orientation to previous
  9. Codeforces Round #Pi (Div. 2)(A,B,C,D)
  10. 数据库的ACID