青岛Android培训
达内青岛山东中心

18300268127

热门课程

volley框架详解

  • 时间:2016-08-10
  • 发布:青岛android培训
  • 来源:青岛android培训

作为青岛android培训机构的小编,我认为下面文章会对大家有帮助。

Volley可是说是把AsyncHttpClient和Universal- Image-Loader的优点集于了一身,既可以像AsyncHttpClient一样非常简单地进行HTTP通信,也可以像Universal- Image-Loader一样轻松加载网络上的图片。除了简单易用之外,Volley在性能方面也进行了大幅度的调整,它的设计目标就是非常适合去进行数据量不大,但通信频繁的网络操作,而对于大数据量的网络操作,比如说下载文件等,Volley的表现就会非常糟糕。

获取到一个RequestQueue对象,可以调用如下方法获取到:

1 RequestQueue mQueue = Volley.newRequestQueue(context);

注意这里拿到的RequestQueue是一个请求队列对象,它可以缓存所有的HTTP请求,然后按照一定的算法并发地发出这些请求。

基本上在每一个需要和网络交互的Activity中创建一个RequestQueue对象就足够了。

接下来为了要发出一条HTTP请求,我们还需要创建一个StringRequest对象,如下所示:

1 public void volleyGet(){

2

3 StringRequest request=new StringRequest(Method.GET, "url", new Listener() {

4

5 @Override

6

7 public void onResponse(String arg0) {

8

9 // TODO Auto-generated method stub

10

11 }

12

13 }, new Response.ErrorListener() {

14

15

16

17 @Override

18

19 public void onErrorResponse(VolleyError arg0) {

20

21 // TODO Auto-generated method stub

22

23 }

24

25 });

26

27 MyApplication.getHttpQueue().add(request);

28

29 }

30

31

32

33 public void volleyPost(String... param) {

34

35 HashMap hm = new HashMap();

36

37 hm.put("requestPurpose", "1");

38

39 hm.put("username", param[0]);

40

41 hm.put("userpassword", param[1]);

42

43 NormalPostRequest request = new NormalPostRequest("url", new Response.Listener() {

44

45 @Override

46

47 public void onResponse(JSONObject arg0) {

48

49 // TODO Auto-generated method stub

50

51 }

52

53 }, new Response.ErrorListener() {

54

55 @Override

56

57 public void onErrorResponse(VolleyError arg0) {

58

59 // TODO Auto-generated method stub

60

61 }

62

63 }, hm);

64

65 MyApplication.getHttpQueue().add(request);

66

67 }

. JsonRequest的用法

学完了最基本的StringRequest的用法,我们再来进阶学习一下JsonRequest的用法。类似于 StringRequest,JsonRequest也是继承自Request类的,不过由于JsonRequest是一个抽象类,因此我们无法直接创建它的实例,那么只能从它的子类入手了。JsonRequest有两个直接的子类,JsonObjectRequest和 JsonArrayRequest,从名字上你应该能就看出它们的区别了吧?一个是用于请求一段JSON数据的,一个是用于请求一段JSON数组的。

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

1 JsonObjectRequest jsonObjectRequest = new JsonObjectRequest("http://m.weather.com.cn/data/101010100.html", null,

2 new Response.Listener() {

3 @Override

4 public void onResponse(JSONObject response) {

5 Log.d("TAG", response.toString());

6 }

7 }, new Response.ErrorListener() {

8 @Override

9 public void onErrorResponse(VolleyError error) {

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

11 }

12 });

更多相关编程开发的视频尽在青岛android培训官网。

上一篇:青岛android培训谈HTML5出现之前
下一篇:Android Force Close 出现原因与解决方法

Driving the Activity Lifecycle

九种比较实用的软件编程工具分享比较

手机直播的连麦功能分析与交互建议

android程序员如何快速学习ios系统开发技术

选择城市和中心
贵州省

广西省

海南省

达内教育

有位老师想和您聊一聊