依赖
implementation 'io.reactivex.rxjava2:rxandroid:2.0.2'
implementation 'io.reactivex.rxjava2:rxjava:2.0.2'
implementation 'com.squareup.retrofit2:retrofit:2.0.2'
implementation 'com.squareup.retrofit2:adapter-rxjava2:2.3.0'
implementation 'com.squareup.retrofit2:converter-gson:2.0.2'
package com.baway.alex.retrofitdemo.di;
import com.baway.alex.retrofitdemo.data.beans.FormatBean;
import java.util.Map;
import okhttp3.ResponseBody;
import retrofit2.Call;
import retrofit2.http.Field;
import retrofit2.http.FieldMap;
import retrofit2.http.FormUrlEncoded;
import retrofit2.http.GET;
import retrofit2.http.HTTP;
import retrofit2.http.POST;
import retrofit2.http.Path;
import retrofit2.http.Query;
import retrofit2.http.QueryMap;
import retrofit2.http.Url;
public interface Api {
//1.定义最基本请求
@GET("featured?p={\"page\":0}")
public Call<ResponseBody> getResponseMsg();
//2.拆分接口,使用Query注解
@GET("featured?")
public Call<ResponseBody> getResponseMsgByQuery(@Query("p") String requestMsg);
//3.拆分接口,使用QueryMap注解
@GET("featured?")
public Call<ResponseBody> getResponseMsgByQueryMap(@QueryMap Map<String, String> queryMap);
//4.拆分接口,使用Path注解
//占位符
@GET("{haojianshe}?")
public Call<ResponseBody> getResponseMsgByPath(@Path("haojianshe") String queryMsg, @QueryMap Map<String, String> queryMap);
//5.最顶层的方法注解
@HTTP(method = "GET", path = "featured?p={\"page\":0}", hasBody = false)
public Call<ResponseBody> httpGetResponseMsg();
//6.Post注解进行Post请求
//必须搭配FormUrlEncoded声明提交的表单请求体
@FormUrlEncoded
@POST("UserQry")
public Call<ResponseBody> getResponseMsgWithPost(@Field("token") String token, @Field("type") String type,
@Field("op_code") String op_code, @Field("phone_no") String phone_no);
//7.Post注解@FieldMap
@FormUrlEncoded
@POST("UserQry")
public Call<ResponseBody> getResponseMsgWithPostThrowFieldMap(@FieldMap Map<String, String> map);
//8.接口替换
//https://gank.io/api/data/%E7%A6%8F%E5%88%A9/10/1
//1.定义最基本请求
@GET()
public Call<ResponseBody> getReplaceResponseMsg(@Url String reuqestUrl);
//8.接口替换
//https://gank.io/api/data/%E7%A6%8F%E5%88%A9/10/1
//1.定义最基本请求
@GET()
public Call<FormatBean> getCompareResponseMsg(@Url String reuqestUrl);
}