android网络开源框架volley(一)——从一个demo开始
2013-12-26 15:55
387 查看
五月份的Google I/O 2013开发者大会上,Google发布了开源的网络框架volley,听说反应很好,因此决定花点时间研究一下。
1、Volley是干什么的
Volley is a library that makes networking for Android apps easier and most importantly, faster.(From:https://developers.google.com/events/io/sessions/325304728)。这个句话还是比较抽象的,更快更容易体现在哪些方面,在什么时候使用?这些都需要我们来慢慢了解~~2、从获取开始
volley获取地址(如果文中所列地址访问不了,请自行想办法,你该懂得):git clone https://android.googlesource.com/platform/frameworks/volley[/code] 下载下来之后,你可以把它作为一个library导入你的项目,或者打包之后导入你的项目,这样我们就可以使用了。我下载的源码和生成的jar可以在这里下载。3、开始一个简单的demo
volley的使用流程大致是这样的。首先,我们拿到volley的请求队列,接着创建自己的请求对象,然后将其放入请求队列,再然后呢?再然后就是等请求结果吧~~是不是太简单了?其实就是这么简单。所以就直接上代码吧:public class MainActivity extends Activity implements OnClickListener { private static final String URL = "http://www.baidu.com/"; private RequestQueue mQueue; // volley的请求队列 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // 通过此种方式拿到请求队列,当然实际使用中我们不会这么做,通常会作为一个全局变量来使用 mQueue = Volley.newRequestQueue(getApplicationContext()); } @Override public void onClick(View v) { volleyRequest(); } /** * 创建一个请求,这里我们做一个最简单的通过GET方式请求网页源码的操作。请求成功后打印结果。 */ private void volleyRequest() { StringRequest request = new StringRequest(Method.GET, URL, new Listener<String>() { @Override public void onResponse(String arg0) { Toast.makeText(getApplicationContext(), arg0, Toast.LENGTH_LONG).show(); Log.d("onResponse", arg0); } }, new ErrorListener() { @Override public void onErrorResponse(VolleyError arg0) { Toast.makeText(getApplicationContext(), arg0.toString(), Toast.LENGTH_LONG).show(); Log.d("onErrorResponse", arg0.toString()); } }); mQueue.add(request); } }4、总结
相信你已经对这个流程有了大概的认识,的确很简单,想要的结果就这么出来了,而且也没有在主线程中创建一个子线程来跑请求的代码。可能你会有些疑问了,GET请求通过URL来传递参数,我们可以把参数直接加在字符串后面,那POST请求呢?还有就是volley就这些功能吗?还有其他的吗?她的优点在哪些方面体现?哈哈,这篇就说这些,下篇继续~~
最后在补充一下volley发布会的视频和一个PDF(也就是最上面那个页面中的内容),下载点这里:http://pan.baidu.com/s/1dDyz23v。
相关文章推荐
- 音视频的发展与anychat的技术
- 【Arcgis for android】相关教程收集自网络
- 实时传输协议:RTP、RTCP、RTSP介绍
- Ubuntu中启用关闭Network-manager网络设置问题!
- Android中如何根据图片url路径来获取网络图片
- http协议详解
- 浅谈 Linux 内核开发之网络设备驱动
- 卷积神经网络(Convolutional Neural Networks)
- android Connection to http: 192.168.xx.x:8080 refused
- 标准的TCP/IP工业以太网-EtherNet/IP
- 金山网络-度过生死线
- 海康 PTZ HTTP控制
- Donet 加载网络映射盘中的assembly失败
- 编译appche http server:
- [ TED ] 一个简单的thttpd应用
- Apache 的 httpd.conf 详解
- AJAX,get,post传参,readyState一直为0的原因
- Linux下的压力测试工具:ab、http_load、webbench、siege
- Linux下网络配置
- RHEL下,网络断开时不能及时监测socket断开的解决方法