android开发(40) 初试 Volley - GoogleI02013上的“快速,简单的网络通讯库”
什么是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
怎么用?
- 构建一个“请求队列“RequestQueue
 - 构建请求Request,支持 StringRequest,JsonRequest,并可以自定义Request
 - 构建 回调监听器 ,它将在请求处理完成后被调用。
 - 将请求添加到队列
 
演示代码
简单的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 示例
android开发(40) 初试 Volley - GoogleI02013上的“快速,简单的网络通讯库”的更多相关文章
- Android开发笔记——以Volley图片加载、缓存、请求及展示为例理解Volley架构设计
		
Volley是由Google开源的.用于Android平台上的网络通信库.Volley通过优化Android的网络请求流程,形成了以Request-RequestQueue-Response为主线的网 ...
 - Android开发学习了这些,上帝都淘汰不了你
		
曾听过很多人说Android学习很简单,做个App就上手了,工作机会多,毕业后也比较容易找工作.这种观点可能是很多Android开发者最开始入行的原因之一. 在工作初期,工作主要是按照业务需求实现Ap ...
 - 《android开发进阶从小工到专家》读书笔记--HTTP网络请求
		
No1: 客户端与服务器的交互流程: 1)客户端执行网络请求,从URL中解析出服务器的主机名 2)将服务器的主机名转换成服务器的IP地址 3)将端口号从URL中解析出来 4)建立一条从客户端与Web服 ...
 - android开发笔记之Volley (1)
		
1. volley的简介 Volley is an HTTP library that makes networking for Android apps easier and most import ...
 - Android 开发 框架系列 OkHttp文件上传功能实现(含断点续传)
		
前言 此篇博客只是上传功能的记录demo,如果你还不太了解okhttp可以参考我的另一篇博客https://www.cnblogs.com/guanxinjing/p/9708575.html 代码部 ...
 - 5.21学习总结——android开发实现用户头像的上传
		
最近在做个人头像的上传,具体是能调用摄像头和从相册进行选择.本篇文章参考的我的同学的博客,大家有兴趣可以去原作者那里去看看: Hi(.・∀・)ノ (cnblogs.com) 1.使用glide进行图片 ...
 - android开发工具类之获得WIFI IP地址或者手机网络IP
		
有的时候我们需要获得WIFI的IP地址获得手机网络的IP地址,这是一个工具类,专门解决这个问题,这里需要两个权限: <uses-permission android:name="and ...
 - 【Android】Android开发实现进度条效果,SeekBar的简单使用。音量,音乐播放进度,视频播放进度等
		
作者:程序员小冰,GitHub主页:https://github.com/QQ986945193 新浪微博:http://weibo.com/mcxiaobing 首先给大家看一下我们今天这个最终实现 ...
 - 我的Android进阶之旅】GitHub 上排名前 100 的 Android 开源库进行简单的介绍
		
GitHub Android Libraries Top 100 简介 本文转载于:https://github.com/Freelander/Android_Data/blob/master/And ...
 
随机推荐
- GIT 简单版
			
Git规范 by 程序亦非猿 2016.4.6 这又是一篇我在公司分享的,想制定一下Git的规范,有兴趣的可以看看~ 上一篇在这里 分支模型 每个项目必须要有master.develop分支. 每个开 ...
 - 大家来找茬:富连网今天中午抢购二手iPhone时网站无法访问的问题
			
前几天在新闻区看到富士康卖二手iPhone的新闻,今天又看到说今天中午12点开抢.一大早就发现富连网无法访问了.前几天刚看到新闻的时候注册了个账号进去看了看,发现页面加载速度非常慢,今天中午基本无法打 ...
 - activiti 6 查询api
			
1 activiti 查询多字段排序 每个字段都要有 sortBy -> desc/asc [sortBy -> desc/asc] [sortBy -> desc/asc] 2 使 ...
 - ssh转发
			
ssh有3种转发:本地转发,远程转发,动态转发. 1.本地转发:当client和ssh-client的方向一致的时候,就是本地转发. 限制:1)client直接访问server被防火墙阻挡.2)ssh ...
 - 各个框架下的aop
			
http://www.cnblogs.com/neverc/p/5241466.html
 - 使用jquery插件ajaxfileupload一次上传多个文件,示例
			
@{ ViewBag.Title = "Index"; Layout = ""; } <!DOCTYPE html PUBLIC "-//W3C ...
 - zabbix 安装时 到第三步时 database type 没有mysql选项
			
没有MySQL选项: 思路首选想到httpd: 一些问题都会从日志中反映出来: # tail -f error_log PHP Warning: PHP Startup: Unable to load ...
 - C++ 风格与技术 FAQ(中文版)
			
Bjarne Stroustrup 的 C++ 风格与技术 FAQ(中文版) 原作:Bjarne Stroustrup 翻译:Antigloss 译者的话:尽管我已非常用心,力求完美,但受水平所 ...
 - Ubuntu下golang环境搭建
			
参考官方文档:https://golang.org/doc/editors.html 1.安装golang apt install golang 2.配置GOPATH mkdir ~/gopath v ...
 - C# 实现list=list.OrderBy(q=>q.字段名).ToList(); 按多个字段排序
			
//倒序 list.OrderByDescending(i => i.a).ThenByDescending(i => i.b); //顺序 list.OrderBy(i => i. ...