在之前的Http网络请求中,我们一般使用输入流以及缓冲区的方式进行访问,然后从服务器获取返回的数据。代码行数近20行,而且网络操作是放在Thread线程中进行的,对于Java或者Android的线程还不是很了解的同学来说,理解可能会有一定的难度。

本篇文章将会讨论使用开源库Volley进行网络的GET请求。实现结果同之前程序,只是代码将会大大简化。Volley是Google官方发布的Android平台上的网络通信库。以前的网络请求,要考虑开启线程、内存泄露、性能等复杂的问题。但是Volley框架已经帮我们把这些问题处理好了,对外提供了相应的完善的请求API,我们只需要按照请求使用即可。能使网络通信更快,更简单,更健壮。

这个例子中向聚合数据的手机归属地API发起GET请求,返回JSON数据。调用接口可以参考聚合数据官网。

废话不说,直接上代码,最后的结果显示在TextView上:

public class MainActivity extends Activity {    private TextView text;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        text = (TextView) findViewById(R.id.id_text);        getVolley();    }    public void getVolley() {        String url = "http://apis.juhe.cn/mobile/get?phone=13429667914&key=9719c91bd4ac2647c67c6cd067b5cb8e";//调用接口;        /**         * 开始进行网络请求,设置相应的请求参数;         */        StringRequest request = new StringRequest(Method.GET, url, new Listener<String>() {            @Override            public void onResponse(String result) {//请求成功时回调onResponse();                text.append(result);            }        }, new Response.ErrorListener() {            @Override            public void onErrorResponse(VolleyError volleyError) {//请求成功时回调onErrorResponse();                text.append("不能成功从服务器获取消息");            }        });        Volley.newRequestQueue(getApplicationContext()).add(request);//把请求放入到请求队列中;    }}   运行成功后,效果如下:<img src="http://img.blog.csdn.net/20150714232653456?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />。     至此,已经实现使用Volley向服务器请求数据。注意,所有涉及网络的操作必须要在AndroidMenifest.xml中加入Internet权限:<pre name="code" class="html"> <uses-permission android:name="android.permission.INTERNET"></uses-permission>。

 附Volley库下载链接: http://pan.baidu.com/s/1sjoQgHZ  


github主页:https://github.com/chenyufeng1991 。欢迎大家访问!

更多相关文章

  1. 一句话锁定MySQL数据占用元凶
  2. android之SQLite数据库应用(二)
  3. Android使用Sqlite存储数据用法示例
  4. 伦敦开发者构建了一个基于 Android(安卓)的坦克
  5. Android中ListView动态加载数据 加载中
  6. Android(安卓)如何导入已有的外部数据库
  7. 基于Android移动终端的搜索客户端应用【团队项目】
  8. Android中的XML解析-DOM的使用与开发技巧
  9. android 地铁最短路线换乘查询系统(1)

随机推荐

  1. android跨进程IPC通信探讨(A应用与B应用
  2. Android 系列 6 图形用户界面 (GUI)
  3. java/android 设计模式学习笔记(1)---单例
  4. 最全的android图片加密
  5. 关于Air端与android端的通信实现
  6. 从源码中浅析Android中如何利用attrs和st
  7. [置顶] Android代码混淆
  8. 国内开发者掀Android热潮盈利有两种
  9. Android使用Bmob后台服务器的基础配置与
  10. 八款 Galaxy Tab 平板將於下月開始更新至