OkUtil:
public class OkUtil {
private static OkUtil instance;
private OkHttpClient mClient;
private Handler handler=new Handler(Looper.getMainLooper());
public static OkUtil getInstance(){
if (instance==null){
synchronized (OkUtil.class){
instance=new OkUtil();
}
}
return instance;
}
private OkUtil(){
//拦截器
CustomIn interceptor=new CustomIn();
/*interceptor.setLevel(HttpLoggingInterceptor.Level.BODY);*/
mClient=new OkHttpClient.Builder()
.readTimeout(10,TimeUnit.SECONDS)
.connectTimeout(10,TimeUnit.SECONDS)
.writeTimeout(10,TimeUnit.SECONDS)
.addInterceptor(interceptor)
.build();
}
public void postenqueue(String url, Map<String,String> parmas, final Class clazz, final ICallBack callBack){
FormBody.Builder builder=new FormBody.Builder();
//迭代器
for (Map.Entry<String,String> entry : parmas.entrySet()){
builder.add(entry.getKey(),entry.getValue());
}
RequestBody body=builder.build();
Request request=new Request.Builder()
.post(body)
.url(url)
.build();
Call call=mClient.newCall(request);
call.enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
callBack.falied(e);
}
@Override
public void onResponse(Call call, Response response) throws IOException {
String result = response.body().string();
final Object o = new Gson().fromJson(result, clazz);
handler.post(new Runnable() {
@Override
public void run() {
callBack.success(o);
}
});
}
});
}
public void gettenqueue(String url, Map<String,String> parmas, final Class clazz, final ICallBack callBack){
Request request=new Request.Builder()
.get()
.url(url)
.build();
Call call=mClient.newCall(request);
call.enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
callBack.falied(e);
}
@Override
public void onResponse(Call call, Response response) throws IOException {
try {
String result = response.body().string();
final Object o = new Gson().fromJson(result, clazz);
handler.post(new Runnable() {
@Override
public void run() {
callBack.success(o);
}
});
}catch(Exception e){
callBack.falied(e);
}
}
});
}
}