最近做了一个模块需要在Android客户端做网络请求,调用服务端提供的REST API。由于开发时间紧,网络请求次数和接口个数都比较多,如果使用自带的HttpURLConnection和HttpClient加上Java自身提供的Json库开发效率会很低,而网上的开源库例如okhttp或Retrofit我都缺乏了解。为了求稳,便使用了Google官方开发的网络库Volley和Json解析库Gson,使用起来发现非常的顺手,跟服务端提供的API几乎无缝衔接.
Volley
首先Volley库的使用可以参考Android开发的官方文档Training中的Transmitting Network Data Using Volley这一章的内容。最开始只需了解如何send a request,cancel a request,custom request这些基本的操作。接下来文档中的Use a Singleton Pattern将RequestQueue封装成单例的思想以及文档中非常重要的一张图:
都是值得好好学习的,可以了解到对于Volley最基本的封装以及在使用Volley库的过程中哪些代码运行在哪些线程的问题。
Gson
Gson是Google开发的将Json串和JavaBean相互转换的非常方便易用的库。Github地址在https://github.com/google/gson。具体的使用方法只要阅读README中的user guide就能掌握了。具体的功能有Json串和JavaBean的相互转换,包括数组,嵌套类,并且可以自定义一些内容,例如控制哪些字段需要操作哪些不需要,空值的操作等等。Gson库我认为比较难的一点在于如何定义JavaBean中字段的类型,尤其是在有泛型和容器类的情况下。