//带拦截器的OK
package com.example.mapdemo;
import android.os.Handler;
import android.util.Log;
import java.io.IOException;
import java.util.Map;
import okhttp3.Call;
import okhttp3.Callback;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
public class EdOkthhp {
private Handler handler=new Handler();
private static EdOkthhp okHttp;
EdOkthhp(){
}
public static EdOkthhp getInert(){
if(null == okHttp){
synchronized (EdOkthhp.class){
okHttp=new EdOkthhp();
}
}
return okHttp;
}
public void doGet(String path, Map<String,String> map, final Okinteface okinteface){
StringBuffer sb=null;
for(String key:map.keySet()){
if(sb==null){
sb=new StringBuffer();
sb.append("?");
}else{
sb.append("&");
}
sb.append(key).append("=").append(map.get(key));
}
OkHttpClient okHttpClient = new OkHttpClient.Builder()
.addInterceptor(new Logger())
.build();
final Request request = new Request.Builder()
.get()
.url(path+sb.toString())
.build();
Log.e("arr",path+sb.toString());
Call call = okHttpClient.newCall(request);
call.enqueue(new Callback() {
@Override
public void onFailure(Call call, final IOException e) {
handler.post(new Runnable() {
@Override
public void run() {
okinteface.shibai(e.getMessage());
}
});
}
@Override
public void onResponse(Call call, final Response response) throws IOException {
final String string = response.body().string();
handler.post(new Runnable() {
@Override
public void run() {
okinteface.chenggong(string);
}
});
}
});
}
}
//拦截器的类
public class Logger 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);
}
}