RxJava和Retrofit结合使用

本文总结了如何结合RxJava和Retrofit2来发起网络请求,特别是调用豆瓣API获取电影数据的过程。首先,介绍了仅使用Retrofit2进行网络请求的基本步骤,然后演示了如何修改接口以引入RxJava进行异步操作。通过这种方式,可以更方便地管理和处理网络请求的响应。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言:

前段时间花了点时间学了一下RxJava和Retrofit2,后面在实践中被没有用到,今天一看,呃,都基本上忘掉了。

在这里总结记录一下。

这里调用豆瓣的电影接口拉取一些数据

URL:https://api.douban.com/v2/movie/


一、只用Retrofit2发起网络请求

1.给对应的URL定义一个Java接口

public interface MovieService {

    @GET("top250")//start,count 是接口的参数
    Call<MovieEntity> getTopMovie(@Query("start") int start, @Query("count") int count);

}
2.用Retrofit 实例调用接口

创建实例

Retrofit retrofit = new Retrofit.Builder()
        .baseUrl(url)
        .addConverterFactory(GsonConverterFactory.create())
        .build();
MovieService movieService = retrofit.create(MovieService.class);

发起请求

Call<MovieEntity> call = movieService.getTopMovie(0, 10);
call.enqueue(new Callback<MovieEntity>() {
      @Override
      public void onResponse(Call<MovieEntity> call, Response<MovieEntity> response) {
          Toast.makeText(getBaseContext(), "success=" + response.body().toString(), Toast.LENGTH_SHORT).show();
      }

      @Override
      public void onFailure(Call<MovieEntity> call, Throwable t) {
          Toast.makeText(getBaseContext(), "error=" + t.getMessage(), Toast.LENGTH_SHORT).show();
      }
});
用到的实体类

public class MovieEntity implements Serializable {

    private Long mId;

    private String mTitle;

    private String mSummary;

    public Long getmId() {
        return mId;
    }

    public void setmId(Long mId) {
        this.mId = mId;
    }

    public String getmTitle() {
        return mTitle;
    }

    public void setmTitle(String mTitle) {
        this.mTitle = mTitle;
   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值