Retrofit2和Rxjava2和LiveData的请求整理

Retrofit是Square公司出品的基于OkHttp封装的一套RESTful(目前流行的一套api设计的风格)网络请求框架。它内部使用了大量的设计模式,以达到高度解耦的目的;它可以直接通过注解的方式配置请求;可以使用不同的Http客户端;还可以使用json Converter序列化数据,直接转换成你期望生成的实体bean;它还支持Rxjava和LiveData等等等

Rxjava2和LiveData是利用Retrofit2的使用来返回独立的对象处理
 

LiveData + ViewModel替代Rxjava2,但缺少一些Rxjava2没有的功能,如Stream,Rxjava2中缺少关于LiveData中

LiveData 算是一个数据持久类

Rxjava2 有链式响应请求的过程

组合方式 

1、Retrofit 单独请求

2、Retrofit+RxJava实现网络请求,返回的是Observable

3、Retrofit+LiveData实现网络请求,返回的是LiveData

以上请求加上OkHttpClient,可以进行请求拦截处理和超时等设置(超时时间设置生不生效不好说)

Retrofit的创建方式一样,只是ApiService中接口返回不一样

基本形式

  Retrofit retrofit = new Retrofit.Builder()
                .baseUrl("http://fanyi.youdao.com/") //设置网络请求的Url地址
                .addConverterFactory(GsonConverterFactory.create()) //设置数据解析器
                .addCallAdapterFactory(RxJavaCallAdapterFactory.create())
                .build();

返回形式:

@GET("xxxxx")
Call<DataBean> getDataBeanObservable();

@GET("xxxxx")
LiveData<DataBean> getDataBeanLiveData();

@GET("xxxxx")
Observable<DataBean> getDataBeanObservable();

Retrofit + LiveData

RetrofitManager.get("https://cn.bing.com/")
        .create(SplashService.class)
        .getBingImgLiveData().observe(this, new Observer<BingImg>() {
    @Override
    public void onChanged(BingImg bingImg) {
        Log.d(TAG, "onChanged: 请求结果:"+new Gson().toJson(bingImg));
    }
});

 Retrofit请求分为同步请求和异步请求

写法《一》:单纯使用Retrofit,不加Rxjava的使用

/**
* 描述:第一步:定义一个接口配置网络请求
*/
public interface Weath
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值