近些年很火的 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<ResponseBody> getTop250_1 (@Query("start") int start , @Query("count") int count);
@FormUrlEncoded
@POST("top250")
Call<ResponseBody> getTop250_2 (@Field("start") int start , @Field("count") int count);
@GET("simple")
Call<String> ceshi1 ();
}
4、使用方法
HttphelperIni();//初始化Retrofit2
//1.异步使用方法(注意,在不确定返回参数类型的前提下,使用responsebody参数,否则方法转换参数失败会进入onFailure方法)
Myservice m=HttpHelper.Getretrofit().create(Myservice.class);
Call<ResponseBody>call=m.getTop250_1(0,20);
call.enqueue(new Callback<ResponseBody>() {
@Override
public void onResponse(Call<ResponseBody> call, Response<ResponseBody> response) {
ResponseBody body=response.body();
Toast.makeText(MainActivity.this,"正确",Toast.LENGTH_SHORT).show();
}
@Override
public void onFailure(Call<ResponseBody> call, Throwable t) {
Toast.makeText(MainActivity.this,"错误",Toast.LENGTH_SHORT).show();
}
});
//2.同步使用方法
Response<ResponseBody> response = call.execute();
5、后记
这些都是最基本的使用方法,只是为了以后使用方便,具体细节请另行百度……