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 ...
随机推荐
- hive SQL 字母大小写转换
lower(string A) lcase(string A) 将文本字符串转换成字母全部小写形式 upper(string A) ucase(string A) 将文本字符串转换成字母全部大写形式
- [转]单元测试利器 JUnit 4
引言 毋庸置疑,程序员要对自己编写的代码负责,您不仅要保证它能通过编译,正常地运行,而且要满足需求和设计预期的效果.单元测试正是验证代码行为是否满足预期的有效手段之一.但不可否认,做测试是件很枯燥无趣 ...
- python标准库介绍——34 commands 模块详解
==commands 模块== (只用于 Unix) ``commands`` 模块包含一些用于执行外部命令的函数. [Example 3-7 #eg-3-7] 展示了这个模块. ====Exampl ...
- LVL类及接口使用介绍(License Verification Library )
原文:http://android.eoe.cn/topic/android_sdk LVL Classes and Interfaces-LVL类和接口 Table 1 lists all of t ...
- 【Android API】Android 4.1 API官方文档详解
原文:http://android.eoe.cn/topic/summary 翻译:[eoeAndroid原创团队]kris.流风而逝.贼寇在何方.snowxwyo.lsy4833406 更新日期:2 ...
- iOS求职之C语言面试题
1.static有什么用途?(请至少说明两种) 1)限制变量的作用域 2)设置变量的存储域(堆,主动分配内存也是堆) 1)在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变. 2) ...
- linq筛选唯一
var sizelist= (from p in stockList select p.Size).Distinct().ToArray(); newslist = newslist.OrderBy( ...
- nodejs中aes-128-cbc加密和解密
和java程序进行交互的时候,java那边使用AES 128位填充模式:AES/CBC/PKCS5Padding加密方法,在nodejs中采用对应的aes-128-cbc加密方法就能对应上,因为有使用 ...
- dom4j: 生成XML时文本中回车换行无效
属性文本中回车换行在输出时被dom4j自动去掉了. 解决办法: 将format.setTrimText(false); 即可.因为 createPrettyPrint()方法中有 format.set ...
- .net core 调用数字证书 使用X509Certificate2
.NET下面的 .netfromwork使用和asp.net core下使用方式不一样 配置文件中代码: public const string API_URL = "https://api ...