快捷搜索:  as  test  1111  test aNd 8=8  test++aNd+8=8  as++aNd+8=8  as aNd 8=8

小金体育官网充值_酒文化网进入



1. Volley简介

我们日常平凡在开拓Android利用的时刻弗成避免地都必要用到收集技巧,而多半环境下利用法度榜样都邑应用HTTP协议来发送和接管收集数据。Android系统中主要供给了两种要领来进行HTTP通信,HttpURLConnection和HttpClient,险些在任何项目的代码中我们都能看到这两个类的身影,应用率异常高。

不过HttpURLConnection和HttpClient的用法照样轻细有些繁杂的,假如不进行适当封装的话,很轻易就会写出不少重复代码。于是乎,一些Android收集通信框架也就应运而生,比如说AsyncHttpClient,它把HTTP所有的通信细节整个封装在了内部,我们只必要简单调用几行代码就可以完成通信操作了。再比如Universal-Image-Loader,它使得在界面上显示收集图片的操作变得极端简单,开拓者不用关心若何从收集上获取图片,也不用关心开启线程、收受接收图片资本等细节,Universal-Image-Loader已经把统统都做好了。

Android开拓团队也是意识到了有需要将HTTP的通信操作再进行简单化,于是在2013年Google I/O大年夜会上推出了一个新的收集通信框架——Volley。Volley可是说是把AsyncHttpClient和Universal-Image-Loader的优点集于了一身,既可以像AsyncHttpClient一样异常简单地进行HTTP通信,也可以像Universal-Image-Loader一样轻松加载收集上的图片。除了简单易用之外,Volley在机能方面也进行了大年夜幅度的调剂,它的设计目标便是异常得当去进行数据量不大年夜,但通信频繁的收集操作,而对付大年夜数据量的收集操作,比如说下载文件等,Volley的体现就会异常糟糕。

下图所示的这些利用都是属于数据量不大年夜,但收集通信频繁的,是以异常得当应用Volley。

2. 下载Volley

先容了这么多理论的器械,下面我们就筹备开始进行实战了,首先必要将Volley的jar包筹备好,假如你的电脑上装有Git,可以应用如下敕令下载Volley的源码:

git clone https://android.googlesource.com/platform/frameworks/volley

下载完成后将它导入到你的Eclipse工程里,然后再导出一个jar包就可以了。假如你的电脑上没有Git,那么也可以直接应用我导出好的jar包,下载地址 。

新建一个Android项目,将volley.jar文件复制到libs目录下,这样筹备事情就算是做好了。

3. StringRequest的用法

前面已经说过,Volley的用法异常简单,那么我们就从最基础的HTTP通信开始进修吧,即提议一条HTTP哀求,然后接管HTTP相应。首先必要获取到一个RequestQueue工具,可以调用如下措施获取到:

RequestQueue mQueue = Volley.newRequestQueue(context);

留意这里拿到的RequestQueue是一个哀求行列步队工具,它可以缓存所有的HTTP哀求,然后按照必然的算法并发地发出这些哀求。RequestQueue内部的设计便是异常相宜高并发的,是以我们不必为每一次HTTP哀求都创建一个RequestQueue工具,这是异常挥霍资本的,基础上在每一个必要和收集交互的Activity中创建一个RequestQueue工具就足够了。

接下来为了要发出一条HTTP哀求,我们还必要创建一个StringRequest工具,如下所示:

StringRequest stringRequest = new StringRequest("http://www.baidu.com",

new Response.Listener() {@Override

public void onResponse(String response) {Log.d("TAG", response);

}}, new Response.ErrorListener() {

@Overridepublic void onErrorResponse(VolleyError error) {

Log.e("TAG", error.getMessage(), error);}

});

可以看到,这里new出了一个StringRequest工具,StringRequest的构造函数必要传入三个参数,第一个参数便是目标办事器的URL地址,第二个参数是办事器相应成功的回调,第三个参数是办事器相应掉败的回调。此中,目标办事器地址我们填写的是百度的首页,然后在相应成功的回调里打印出办事器返回的内容,在相应掉败的回调里打印出掉败的具体信息。

着末,将这个StringRequest工具添加到RequestQueue里面就可以了,如下所示:

mQueue.add(stringRequest);

别的,因为Volley是要造访收集的,是以不要忘怀在你的AndroidManifest.xml中添加如下权限:

好了,便是这么简单,假如你现在运行一下法度榜样,并发出这样一条HTTP哀求,就会看到LogCat中会打印出如下图所示的数据。

没错,百度返回给我们的便是这样一长串的HTML代码,虽然我们看起来会有些吃力,然则浏览器却可以轻松地对这段HTML代码进行解析,然后将百度的首页展现出来。

这样的话,一个最基础的HTTP发送与相应的功能就完成了。你会发明根本还没写几行代码就随意马虎实现了这个功能,主要便是进行了以下三步操作:

1. 创建一个RequestQueue工具。

2. 创建一个StringRequest工具。

3. 将StringRequest工具添加到RequestQueue里面。

不过大年夜家都知道,HTTP的哀求类型平日有两种,GET和POST,刚才我们应用的显着是一个GET哀求,那么假如想要发出一条POST哀求应该怎么做呢?StringRequest中还供给了别的一种四个参数的构造函数,此中第一个参数便是指定哀求类型的,我们可以应用如下要领进行指定:

StringRequest stringRequest = new StringRequest(Method.POST, url,listener, errorListener);

可是这只是指定了HTTP哀求要领是POST,那么我们要提交给办事器的参数又该怎么设置呢?很遗憾,StringRequest中并没有供给设置POST参数的措施,然则当发出POST哀求的时刻,V小金体育官网充值olley会考试测验调用StringRequest的父类——Request中的getParams()措施来获取POST参数,那么办理措施自然也就有了,我们只必要在StringRequest的匿名类中重写getParams小金体育官网充值()措施,在这里设置POST参数就可以了,代码如下所示:

StringRequest stringRequest = new StringRequest(Method.POST, url,listener, errorListener) {

@Overrideprotected Map getParams() throws AuthFailureError {

Map map = new HashMap();map.put("params1", "value1");

map.put("params2", "value2");return map;

}};

你可能会说,每次都这样用起来岂不是很累?连个设置POST参数的措施都没有。然则不要忘怀,Volley是开源的,只要你乐意,你可以自由地在里面添加和改动任何的措施,轻松就能定制出一个属于你自己的Volley版本。

4. JsonRequest的用法

学完了最基础的StringRequest的用法,我们再来进阶进修一下JsonRequest的用法。类似于StringRequest,JsonRequest也是承袭自Request类的,不过因为JsonRequest是一个抽象类,是以我们无法直接创建它的实例,那么只能从它的子类入手小金体育官网充值了。JsonRequest有两个直接的子类,JsonObjectRequest和JsonArrayRequest,从名字上你应该能就看出它们的差别了吧?一个是用于哀求一段JSON数据的,一个是用于哀求一段JSON数组的。

至于它们的用法也基础上没有什么特殊之处,先new出一个JsonObjectRequest工具,如下所示:

JsonObjectRequest jsonObjectRequest = new JsonO小金体育官网充值bjectRequest("http://m.weather.com.cn/data/101010100.html", null,

new Response.Listener() {@Override

public void onResponse(JSONObject response) {Log.d("TAG", response.toString());

}}, new Response.ErrorListener() {

@Overridepublic void onErrorResponse(VolleyError error) {

Log.e("TAG", error.getMessage(), error);}

});

可以看到,这里我们填写的URL地址是http://m.weather.com.cn/data/101010100.html,这是中国气象网供给的一个查询气象信息的接口,相应的数据便因此JSON款式返回的,然后我们在onResponse()措施中将返回的数据打印出来。

着末再将这个JsonObjectRequest工具添加到RequestQueue里就可以了,如下所示:

mQueue.add(jsonObjectRequest);

这样当HTTP通信完成之后,办事器相应的气象信息就会回调到onRespo小金体育官网充值nse()措施中,并打印出来。现在运行一下法度榜样,发出这样一条HTTP哀求,就会看到LogCat中会打印出如下图所示的数据。

由此可以看出,办事器返回给我们的数据确凿是JSON款式的,并且onResponse()措施中携带的参数也恰是一个JSONObject工具,之后只必要从JSONObject工具掏出我们想要获得的那部分数据就可以了。

你应该发清楚明了吧,JsonObjectRequest的用法和StringRequest的用法基础上是完全一样的,Volley的易用之处也在这里表现出来了,会了一种就可以让你触类旁通,是以关于JsonArrayRequest的用法信托已经不必要我再去解说了吧。

好了,关于Volley的基础用法就讲到这里,下篇文章中我会带领大年夜家继承商量Volley。感兴趣的同伙请继承涉猎看一篇。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

您可能还会对下面的文章感兴趣: