package com.bwei.lenovo.day0329zhoukao3.http;
import android.util.Log;
import com.google.gson.Gson;
import java.io.IOException;
import okhttp3.FormBody;
import okhttp3.Interceptor;
import okhttp3.Request;
import okhttp3.RequestBody;
import okhttp3.Response;
import retrofit2.Retrofit;
import retrofit2.adapter.rxjava.RxJavaCallAdapterFactory;
import retrofit2.converter.gson.GsonConverterFactory;
public class RetrofitUtil {
private static RetrofitUtil retrofitUtil=null;
private final Retrofit retrofit;
//单利模式
public static RetrofitUtil getInstance(){
if (retrofitUtil==null){
retrofitUtil = new RetrofitUtil();
}
return retrofitUtil;
}
public RetrofitUtil() {
retrofit = new Retrofit.Builder()
.baseUrl(HttpConfig.base_url)
.addConverterFactory(GsonConverterFactory.create(new Gson()))
.addCallAdapterFactory(RxJavaCallAdapterFactory.create())
.build();
}
public <T> T createRequest(Class<T> clz){
T t = retrofit.create(clz);
return t;
}
//拦截器添加公共参数
class MyIntercepter implements Interceptor {
@Override
public Response intercept(Chain chain) throws IOException {
Request request = chain.request();
RequestBody body = request.body();
if (body instanceof FormBody) {
FormBody.Builder builder = new FormBody.Builder();
for (int i = 0; i < ((FormBody) body).size(); i++) {
String name = ((FormBody) body).name(i);
String value = ((FormBody) body).value(i);
builder.add(name, value);
}
builder.add("source", "android");
FormBody formBody = builder.build();
Request newrequest = request.newBuilder().post(formBody).build();
Log.e("url", newrequest.url().toString());
Response proceed = chain.proceed(newrequest);
return proceed;
}
return null;
}
}
}
Retrofit封装工具类
最新推荐文章于 2024-04-18 07:30:45 发布