Retrofit 2.0 网络访问框架(特别火)

综合介绍Retrofit2
网络请求框架、效率高、使用简单;
运用注解和动态代理,极大地简化了网络请求的步骤;
速度快(比Volley快);
使用REST API非常方便(REST:软件架构风格,它是一种针对网络情求的设计和开发方式,可以降低开发的复杂性,提高系统的可伸缩性。);
支持NIO(新的文件输入输出流),可以代替标准的java io api;
Retrofit默认使用okhttp处理网络请求;

默认使用json解析(谷歌的);


RXjava  RXandroid采用了REST软件架构模式!


Retrofit2导包
如果你想在自己的项目中导入Retrofit 2.0,那么在build.gradle的依赖一节里面添加这行代码:
compile 'com.squareup.retrofit:retrofit:2.0.0-beta4'  (squareup公司推出的)
同步后,扩展类库中会增加: 
retrofit:2.0.0-beta4、
okhttp-3.0.1、

okio-1.6.0; nio  新的文件读写包


//或者添加此依赖(导入了所有Retrofit需要的包)
comile 'com.squareup.retrofit:converter-gson:2.0.0-beta4'
同步后,扩展类库中会增加: 
retrofit:2.0.0-beta4、
okhttp-3.0.1、
okio-1.6.0; nio  新的文件读写包
gson-2.4
converter-gson:2.0.0-beta4

Retrofit2中常用注解接口
@Get        get网络请求方式
@Post       post网络请求方式
@Header   头信息参数
@Path 路径参数,替换url地址中{}之间的部分
@Query   查询参数,将在地址中追加类似page=1的字符串,形成提交给服务器的请求参数(类似get网络请求)
@QueryMap   查询参数集合,将在地址中追加多个键值对的内容“type=text&count=1” 这样的字符串


Retrofit2实现http网络访问
代码实现步骤:
        1)定义一个接口(主要作用是用注解的形式封装请求地址和请求参数)
        2)实例化Retrofit
        3)通过Retrofit实例,创建一个接口服务对象
        4)通过接口服务对象,调用接口中的方法,获取call对象
        5)Call对象执行请求(异步请求、同步请求)

Retrofit2中,get网络请求中接口的写法
添加依赖之后,编写接口,定义其中的方法,其中方法的返回值以及泛型是固定的,方法名自己起;别忘了添加注释,是哪种网络请求


注意回调结果是在主线程还是在子线程里? 获取当前线程的id   如果线程id为1,说明请求结果已经到达主线程了,不用再使用消息机制了。


获取的json数据,如何解析?带参数的get请求;POST请求的用法

路径参数(其实就是子地址)与查询参数(在url后面追加请求参数):

Retrofit2接口服务类中URL的定义方式:
Retrofit2.0中Base Url与@url并不是简单的拼接组合;
Base URL与@URL的建议:Base URL总以/结尾,而@url不要以/开头,这样就可以避免不必要的错误!


使用Retrofit2最大的好处是:不用自己再写json解析的过程,导包的时候,已经包含了json解析包;
在as中,如何下载GsonFormat插件以及使用它解析json?
特别好用,自动生成get()和set()方法、以及注释。


Retrofit2实现文件上传


Retrofit2与picasso配合使用中的优化


 







你可能感兴趣的:(框架,json,网络,REST,nio)