public class OkhttpUtils {
public OkhttpUtils() {
}
private static OkhttpUtils okhttpUtils = null;
//创建单例模式
public static OkhttpUtils getinstanse() {
if (okhttpUtils == null) {
synchronized (OkhttpUtils.class) {
if (okhttpUtils == null) {
okhttpUtils = new OkhttpUtils();
}
}
}
return okhttpUtils;
}
private static OkHttpClient okHttpClient = null;
//创建拦截器方法
private static synchronized OkHttpClient getOkHttpClient() {
if (okHttpClient == null) {
//拦截器
HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor(new HttpLoggingInterceptor.Logger() {
@Override
public void log(String message) {
//拦截日志消息
Log.i("lj", "log: " + message);
}
});
//设置日志拦截器模式
interceptor.setLevel(HttpLoggingInterceptor.Level.BODY);
OkHttpClient okHttpClient = new OkHttpClient.Builder()
//日志拦截器
.addInterceptor(interceptor)
//应用拦截器
.addInterceptor(new Interceptor() {
@Override
public Response intercept(Chain chain) throws IOException {
Request request = chain.request()
.newBuilder()
.addHeader("source", "android")
.build();
return chain.proceed(request);
}
})
.build();
}
return okHttpClient;
}
//get方法
public void doGet(String url, Callback callback) {
//创建okhttp
OkHttpClient okHttpClient = getOkHttpClient();
Request request = new Request.Builder()
.url(url)
.build();
okHttpClient.newCall(request).enqueue(callback);
}
public void doPost(String url, Map<String, String> params, Callback callback) {
OkHttpClient okHttpClient = getOkHttpClient();
//请求体
FormBody.Builder formBody = new FormBody.Builder();
for (String key : params.keySet()) {
//遍历map集合
formBody.add(key, params.get(key));
}
Request request = new Request.Builder()
.url(url)
.post(formBody.build())
.build();
okHttpClient.newCall(request).enqueue(callback);
}
}