首先关于导入相关依赖
Intercept
import java.io.IOException;
import okhttp3.HttpUrl;
import okhttp3.Interceptor;
import okhttp3.Request;
import okhttp3.Response;
public class Intercept implements Interceptor {
@Override
public Response intercept(Chain chain) throws IOException {
Request original = chain.request();
HttpUrl url=original.url().newBuilder()
.addQueryParameter("source","android")
.build();
//添加请求头
Request request = original.newBuilder()
.url(url)
.build();
return chain.proceed(request);
}
}
RetiofitVip
import io.reactivex.Observable; import retrofit2.http.GET; import retrofit2.http.Query; public interface RetiofitVip { @GET("getCarts") Observable<GouBean> gethome(@Query("uid") String uid); @GET("product/getOrders") Observable<DingdanBean> dingdan(@Query("uid") String uid); }
RetrofitHelper
import okhttp3.OkHttpClient;
import retrofit2.Retrofit;
import retrofit2.adapter.rxjava2.RxJava2CallAdapterFactory;
import retrofit2.converter.gson.GsonConverterFactory;
public class RetrofitHelper {
public static Retrofit retrofit;
public static Retrofit getRetrofit(String url) {
if (retrofit == null) {
synchronized (RetrofitHelper.class) {
if (retrofit == null) {
OkHttpClient client = new OkHttpClient.Builder()
.addInterceptor(new Intercept())
.build();
retrofit = new Retrofit.Builder()
.baseUrl(url)
.client(client)
.addConverterFactory(GsonConverterFactory.create())
.addCallAdapterFactory(RxJava2CallAdapterFactory.create())
.build();
}
}
}
return retrofit;
}
}
使用
public void Gouwuche(String uid, final P p) {
RetiofitVip retiofitVip = RetrofitHelper.getRetrofit("https://www.zhaoapi.cn/product/").create(RetiofitVip.class);
retiofitVip.gethome(uid)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Consumer<GouBean>() {
@Override
public void accept(GouBean gouBean) throws Exception {
if (gouBean != null) {
p.Success(gouBean.getData());
} else {
p.Faild(gouBean);
}
}
});
}