---------------拦截器
public class LoggingInterceptor implements Interceptor { private static final String UA = "User-Agent"; @Override public Response intercept(Chain chain) throws IOException { Request request = chain.request() .newBuilder() .addHeader(UA, makeUA()) .build(); return chain.proceed(request); } private String makeUA() { String s = Build.BRAND + "/" + Build.MODEL + "/" + Build.VERSION.RELEASE; return Build.BRAND + "/" + Build.MODEL + "/" + Build.VERSION.RELEASE; } }-------------------------------httputils
public class HttpUtils { private OnNetListener onNetListener; private final OkHttpClient client; private final Handler handler; private static HttpUtils httpUtils; public HttpUtils() { client = new OkHttpClient .Builder() .addInterceptor(new LoggingInterceptor()) .build(); handler = new Handler(Looper.getMainLooper()); } public static HttpUtils getInstance() { if (httpUtils == null) { synchronized (HttpUtils.class) { if (httpUtils == null) { httpUtils = new HttpUtils(); } } } return httpUtils; } public <T> void doGet(String url, final Class<T> clazz, final OnNetListener onNetListener) { Request request = new Request.Builder().url(url).build(); client.newCall(request).enqueue(new Callback() { private String getString; @Override public void onFailure(Call call, IOException e) { } @Override public void onResponse(Call call, Response response) throws IOException { getString = response.body().string(); handler.post(new Runnable() { @Override public void run() { Gson gson = new Gson(); T t = gson.fromJson(getString, clazz); onNetListener.onSuccess(t); } }); } }); } public <T> void doPost(String url, Map<String, String> params, final Class<T> clazz, final OnNetListener onNetListener) { params.put("client", "android "); FormBody.Builder builder = new FormBody.Builder(); if (params != null && params.size() > 0) { for (Map.Entry<String, String> entry : params.entrySet()) { builder.add(entry.getKey(), entry.getValue()); } } FormBody formBody = builder.build(); Request request = new Request.Builder().url(url).post(formBody).build(); client.newCall(request).enqueue(new Callback() { private String string; @Override public void onFailure(Call call, IOException e) { handler.post(new Runnable() { @Override public void run() { } }); } @Override public void onResponse(Call call, final Response response) throws IOException { string = response.body().string(); handler.post(new Runnable() { @Override public void run() { Gson gson = new Gson(); T t = gson.fromJson(string, clazz); onNetListener.onSuccess(t); } }); } }); } }------------------------------------ OnNetListener
public interface OnNetListener<T> { public void onSuccess(T t); public void onError(String str, int code); }