package com.bw.shoppingpractice.uitls;
import android.util.Log;
import java.io.IOException;
import java.util.Map;
import okhttp3.Callback;
import okhttp3.FormBody;
import okhttp3.Interceptor;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
import okhttp3.logging.HttpLoggingInterceptor;
public class OkHttp {
// 单例模式
private static OkHttp okHttp;
private HttpLoggingInterceptor httpLoggingInterceptor;
private OkHttp() {
}
public static OkHttp getInstance()
{
if (okHttp==null)
{
// 同步锁
synchronized (OkHttp.class)
{
if (okHttp==null)
{
okHttp=new OkHttp();
}
}
}
return okHttp;
}
public void doPost( Map<String,String> list,String url, Callback callback)
{
httpLoggingInterceptor = new HttpLoggingInterceptor(new HttpLoggingInterceptor.Logger() {
@Override
public void log(String message) {
Log.i("xxx",message);
}
});
httpLoggingInterceptor.setLevel(HttpLoggingInterceptor.Level.BODY);
FormBody.Builder builder=new FormBody.Builder();
// 遍历集合
for (String key:list.keySet()) {
builder.add(key,list.get(key));
}
OkHttpClient okHttpClient=new OkHttpClient.Builder()
.addInterceptor(new Interceptor() {
@Override
public Response intercept(Chain chain) throws IOException {
Request request=chain.request()
.newBuilder()
.addHeader("userId","userId")
.addHeader("sessionId","sessionId")
.build();
return chain.proceed(request);
}
})
.build();
// 构建
FormBody bulid=builder.build();
Request request=new Request.Builder().url(url).post(bulid).build();
okHttpClient.newCall(request).enqueue(callback);
}
// get
public void doGet(final String userId, final String sessionId, final String url, Callback callback)
{
OkHttpClient okHttpClient=new OkHttpClient.Builder()
.addInterceptor(new Interceptor() {
@Override
public Response intercept(Chain chain) throws IOException {
Request request=chain.request()
.newBuilder()
.addHeader("userId",userId)
.addHeader("sessionId",sessionId)
.build();
return chain.proceed(request);
}
})
.build();
Request request=new Request.Builder().url(url).build();
okHttpClient.newCall(request).enqueue(callback);
}
}
OkHttp的单例模式以及post和get请求
猜你喜欢
转载自blog.csdn.net/weixin_44329686/article/details/89010165
今日推荐
周排行