Android Retrofit2+Rxjava+Okhttp3的使用

近些年很火的 Retrofit2+Rxjava+Okhttp3的使用方法,为了以后应用方便,记录一下使用方法。(仅仅是Retrofit2的简单使用)
参考https://www.jianshu.com/p/0ad99e598dba

1、引入需要的包,在build.gradle中添加如下代码

   compile 'com.squareup.retrofit2:retrofit:2.3.0'//导入retrofit
    compile 'com.google.code.gson:gson:2.6.2'//Gson 库
    //下面两个是RxJava 和 RxAndroid
    compile 'io.reactivex.rxjava2:rxandroid:2.0.2'
    compile 'io.reactivex.rxjava2:rxjava:2.1.0'
    compile 'com.squareup.retrofit2:converter-gson:2.3.0'//转换器,请求结果转换成Model
    compile 'com.squareup.retrofit2:adapter-rxjava2:2.3.0'//配合Rxjava 使用

2、创建HttpHelper类

package com.example.mayiyahei.ceshi.Class;

import retrofit2.Retrofit;
import retrofit2.converter.gson.GsonConverterFactory;

/**
 * Created by mayiyahei on 2019/4/18.
 */

public class HttpHelper {
    public static final String BASE_URL = "https://api.douban.com/v2/movie/";
    private static Retrofit retrofit;

    public  static void Ini(){
        Retrofit retrofit1 = new Retrofit.Builder()
                .baseUrl(BASE_URL)
                .addConverterFactory(GsonConverterFactory.create())
                .build();
        retrofit=retrofit1;
    }

    public static Retrofit Getretrofit(){
        return retrofit;
    }
}

3、创建service类

package com.example.mayiyahei.ceshi.Service;


import okhttp3.ResponseBody;
import retrofit2.Call;
import retrofit2.http.Field;
import retrofit2.http.FormUrlEncoded;
import retrofit2.http.GET;
import retrofit2.http.POST;
import retrofit2.http.Query;

/**
 * Created by mayiyahei on 2019/4/18.
 */

public interface Myservice {
    //获取豆瓣Top250 榜单
    @GET("top250")
    Call getTop250_1 (@Query("start") int start , @Query("count") int count);

    @FormUrlEncoded
    @POST("top250")
    Call getTop250_2 (@Field("start") int start , @Field("count") int count);

    @GET("simple")
    Call ceshi1 ();
}

4、使用方法

HttphelperIni();//初始化Retrofit2
//1.异步使用方法(注意,在不确定返回参数类型的前提下,使用responsebody参数,否则方法转换参数失败会进入onFailure方法)
Myservice m=HttpHelper.Getretrofit().create(Myservice.class);
                Callcall=m.getTop250_1(0,20);
                call.enqueue(new Callback() {
                    @Override
                    public void onResponse(Call call, Response response) {
                        ResponseBody body=response.body();
                        Toast.makeText(MainActivity.this,"正确",Toast.LENGTH_SHORT).show();
                    }

                    @Override
                    public void onFailure(Call call, Throwable t) {
                        Toast.makeText(MainActivity.this,"错误",Toast.LENGTH_SHORT).show();
                    }
                });
//2.同步使用方法
Response response = call.execute();

5、后记

这些都是最基本的使用方法,只是为了以后使用方便,具体细节请另行百度……

你可能感兴趣的:(Android Retrofit2+Rxjava+Okhttp3的使用)