OkHttp工具类
/** *OKHttp缓存使用:仅限GET请求 * 1、创建Cache对象,并设置缓存路径以及缓存区域大小 * 2、通过cache()方法设置缓存配置 * 3、添加网络拦截器 * 1、通过Chain对象获取Request对象:chain.request(); * 2、通过Chain对象重新发起请求,并获取Response对象:chain.proceed(request); * 3、重新设置Response的缓存策略,得到新的Response对象 * 4、返回新Response对象 */ public class OKHttpUtils { private static OKHttpUtils utils; private OkHttpClient client; private OKHttpUtils(Context context){ /** * 网络拦截器 */ // Cache cache = new Cache(context.getCacheDir(),1024*1024*8); // client = new OkHttpClient.Builder().cache(cache).addNetworkInterceptor(new Interceptor() { // @Override // public Response intercept(Chain chain) throws IOException { // Request request = chain.request(); // Response proceed = chain.proceed(request); // Response pragma = proceed.newBuilder() // .headers(getHeader()) // .build(); // return pragma; // } // }).build(); client = new OkHttpClient.Builder() // .addInterceptor(new LoggingInterceptor()) .build(); } public static synchronized OKHttpUtils getInstance(Context context){ if(utils==null) utils = new OKHttpUtils(context); return utils; } public void sendGet(String url, Callback callback){ Request request = new Request.Builder() .url(url) .build(); Call call = client.newCall(request); call.enqueue(callback); } public void sendPOST(String url, RequestBody body, Callback callback){ Request request = new Request.Builder() .url(url) // .headers(getHeader()) .method("POST",body) .build(); Call call = client.newCall(request); call.enqueue(callback); } /** * 封装请求头 * @return */ public Headers getHeader(){ Map map = new HashMap(); map.put("",""); Headers headers = Headers.of(map); return headers; } class LoggingInterceptor implements Interceptor { private Logger logger; @Override public Response intercept(Interceptor.Chain chain) throws IOException { Request request = chain.request(); long t1 = System.nanoTime(); logger.info(String.format("Sending request %s on %s%n%s", request.url(), chain.connection(), request.headers())); Response response = chain.proceed(request); long t2 = System.nanoTime(); logger.info(String.format("Received response for %s in %.1fms%n%s", response.request().url(), (t2 - t1) / 1e6d, response.headers())); return response; } } }
OkHttp Post请求:
FormBody formBody = new FormBody.Builder() //formBody获取 .add("user_name", "15035753277") .add("psd", "admin123") .add("tt", "android") .build(); OKHttpUtils.getInstance(this).sendPOST("http://59.110.105.118:8070/market/account/login", formBody, new Callback() { @Override public void onFailure(Call call, IOException e) { } @Override public void onResponse(Call call, Response response) throws IOException { final String string = response.body().string(); Log.e("-----------------------", string); runOnUiThread(new Runnable() { public Person person; @Override public void run() { Gson gson = new Gson(); person = gson.fromJson(string, Person.class); String user_name = person.getResult().getUser_name(); String user_phone = person.getResult().getUser_phone(); String token = person.getResult().getToken(); name.setText(user_name); pass.setText(user_phone); tttt.setText(token); } }); } });