//package com.tekinarslan.material.sample.uitls; // //import android.os.Handler; //import android.os.Looper; // //import com.google.gson.internal.$Gson$Types; //import com.squareup.okhttp.Callback; //import com.squareup.okhttp.FormEncodingBuilder; //import com.squareup.okhttp.OkHttpClient; //import com.squareup.okhttp.Request; //import com.squareup.okhttp.RequestBody; //import com.squareup.okhttp.Response; //import com.tekinarslan.material.sample.common.utils.LogUtils; // //import java.io.IOException; //import java.lang.reflect.ParameterizedType; //import java.lang.reflect.Type; //import java.net.CookieManager; //import java.net.CookiePolicy; //import java.util.List; //import java.util.concurrent.TimeUnit; // // ///** // * Description : OkHttp网络连接封装工具类 // * Author : lauren // * Email : lauren.liuling@gmail.com // * Blog : http://www.liuling123.com // * Date : 15/12/17 // */ //public class OkHttpUtils1 { // // private static final String TAG = "MyOkHttpUtils"; // // private static OkHttpUtils1 mInstance; // private OkHttpClient mOkHttpClient; // private Handler mDelivery; // // private OkHttpUtils1() { // mOkHttpClient = new OkHttpClient(); // mOkHttpClient.setConnectTimeout(10, TimeUnit.SECONDS); // mOkHttpClient.setWriteTimeout(10, TimeUnit.SECONDS); // mOkHttpClient.setReadTimeout(30, TimeUnit.SECONDS); // //cookie enabled // mOkHttpClient.setCookieHandler(new CookieManager(null, CookiePolicy.ACCEPT_ORIGINAL_SERVER)); // mDelivery = new Handler(Looper.getMainLooper()); // } // // private synchronized static OkHttpUtils1 getmInstance() { // if (mInstance == null) { // mInstance = new OkHttpUtils1(); // } // return mInstance; // } // // private void getRequest(String url, final ResultCallback callback) { // final Request request = new Request.Builder().url(url).build(); // deliveryResult(callback, request); // } // // private void postRequest(String url, final ResultCallback callback, List<Param> params) { // Request request = buildPostRequest(url, params); // deliveryResult(callback, request); // } // // private void deliveryResult(final ResultCallback callback, Request request) { // // mOkHttpClient.newCall(request).enqueue(new Callback() { // @Override // public void onFailure(Request request, final IOException e) { // sendFailCallback(callback, e); // } // // @Override // public void onResponse(Response response) throws IOException { // try { // String str = response.body().string(); // if (callback.mType == String.class) { // sendSuccessCallBack(callback, str); // } else { // Object object = JsonUtils.deserialize(str, callback.mType); // sendSuccessCallBack(callback, object); // } // } catch (final Exception e) { // LogUtils.e(TAG, "convert json failure", e); // sendFailCallback(callback, e); // } // // } // }); // } // // private void sendFailCallback(final ResultCallback callback, final Exception e) { // mDelivery.post(new Runnable() { // @Override // public void run() { // if (callback != null) { // callback.onFailure(e); // } // } // }); // } // // private void sendSuccessCallBack(final ResultCallback callback, final Object obj) { // mDelivery.post(new Runnable() { // @Override // public void run() { // if (callback != null) { // callback.onSuccess(obj); // } // } // }); // } // // private Request buildPostRequest(String url, List<Param> params) { // FormEncodingBuilder builder = new FormEncodingBuilder(); // for (Param param : params) { // builder.add(param.key, param.value); // } // RequestBody requestBody = builder.build(); // return new Request.Builder().url(url).post(requestBody).build(); // } // // // /**********************对外接口************************/ // // /** // * get请求 // * @param url 请求url // * @param callback 请求回调 // */ // public static void get(String url, ResultCallback callback) { // getmInstance().getRequest(url, callback); // } // // /** // * post请求 // * @param url 请求url // * @param callback 请求回调 // * @param params 请求参数 // */ // public static void post(String url, final ResultCallback callback, List<Param> params) { // getmInstance().postRequest(url, callback, params); // } // // /** // * http请求回调类,回调方法在UI线程中执行 // * @param <T> // */ // public static abstract class ResultCallback<T> { // // Type mType; // // public ResultCallback(){ // mType = getSuperclassTypeParameter(getClass()); // } // // static Type getSuperclassTypeParameter(Class<?> subclass) { // Type superclass = subclass.getGenericSuperclass(); // if (superclass instanceof Class) { // throw new RuntimeException("Missing type parameter."); // } // ParameterizedType parameterized = (ParameterizedType) superclass; // return $Gson$Types.canonicalize(parameterized.getActualTypeArguments()[0]); // } // // /** // * 请求成功回调 // * @param response // */ // public abstract void onSuccess(T response); // // /** // * 请求失败回调 // * @param e // */ // public abstract void onFailure(Exception e); // } // // /** // * post请求参数类 // */ // public static class Param { // // String key; // String value; // // public Param() { // } // // public Param(String key, String value) { // this.key = key; // this.value = value; // } // // } // // //}