Retrofit网络请求框架要点总结

本文总结了Retrofit2.0网络请求框架的要点,包括如何定义接口、使用注解、初始化Retrofit、数据转换器和参数注解等。Retrofit利用接口和注解声明请求,支持同步和异步请求,使用OkHttp作为请求代理,并可通过Converter处理数据转换。文章还探讨了Retrofit的URL处理、缓存策略以及进阶特性。
摘要由CSDN通过智能技术生成

Retrofit网络请求框架要点总结

概述

  1. Retrofit2是利用接口、方法和注解参数来声明定义请求的。

  2. 默认采用OkHttp(retrofit1.x中用的是Square包下的,retrofit2.0用的是okHttp3,两者api有较大不同)做请求代理,序列化没有默认需要自己定义。

  3. 可以同步发送请求,也可以异步发送请求 异步时候需要定义回调,同步时候需要处理异常。

  4. 缓存采用OkHttp自带缓存进行处理。

示例

网络权限
 <uses-permission android:name="android.permission.INTERNET" />
使用retrofit1.x时gradle依赖库
dependencies {
compile 'com.google.code.gson:gson:2.3'
compile 'com.squareup.retrofit:retrofit:2.0.0-beta1'
compile 'com.squareup.retrofit:converter-gson:2.0.0-beta2' 
compile 'com.squareup.okhttp:okhttp:2.4.0'

}

使用retrofit2.0时gradle依赖库
 compile 'com.squareup.retrofit2:retrofit:2.0.0-beta3'
 compile 'com.squareup.retrofit2:converter-gson:2.0.0-beta3' 
 从retrofit2.0开始,在Retrofit包中将不包含Converter,所以需要手动的插入一个转换器在Retrofit中,否则只能接受String结果,所以Retrofit2.0不再依赖Gson。

以下是基于Retrofit2.0的讲解

定义数据模型
public class ArticlesModel {
    .....
}
定义接口
/**
 * 爱卡汽车app首页请求接口
 * http://a.xcar.com.cn/interface/6.0/newsList.php/*type=1&provinceId=xxx&cityId=xxx&offset=xxx&limit=xx*x&ver=xxx
 */
interface MainHttpServer{
    //设置头信息 保存缓存
    @Headers("Cache-Control: public, max-age=604800 ,max-stale=2419200")
    // maxAge max-stale感觉两个类类似 都是设置最大失效时间,失效则不使用 需要服务器配合
    //get请求
    @GET("newsList.php")
    Call<ArticlesModel> requestArticles(
            @Query("type") String type,
            @Query("provinceId") String provinceId,
            @Query("cityId") String cityId,
            @Query("offset") String offset,
            @Query("limit") String limit,
            @Query("ver") String ver
    );
}
初始化Retrofit
//初
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值