网络请求之OKHttp3.0(工具类)

来源:互联网 发布:游戏美工入门 编辑:程序博客网 时间:2024/06/05 21:00
import android.content.Context;import android.net.ConnectivityManager;import android.net.NetworkInfo;import android.os.Handler;import android.os.Message;import org.json.JSONObject;import java.io.InputStream;import java.net.HttpURLConnection;import java.net.URL;import java.net.URLEncoder;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;import java.util.concurrent.TimeUnit;import okhttp3.FormBody;import okhttp3.OkHttpClient;import okhttp3.Request;import okhttp3.RequestBody;/** *  */public class NetworkUtils {    public final String TAG = this.getClass().getSimpleName();    private static final int TIME_OUT = 6000;    private static NetworkUtils instance;    private OkHttpClient ohc;    private static final int THREAD_COUNT = Runtime.getRuntime().availableProcessors() * 2+ 1;    private static ExecutorService mFixedThreadExecutor = null;    public NetworkUtils() {//        getOkHttpClient();        mFixedThreadExecutor = Executors.newFixedThreadPool(THREAD_COUNT);        LogUtils.logE(TAG, "THREAD_COUNT = " + THREAD_COUNT);    }    public static NetworkUtils getInstance() {        synchronized (NetworkUtils.class) {            if (instance == null) {                instance = new NetworkUtils();            }        }        return instance;    }    /**     * *     * 将线程放入线程池中运行     *     * @param runnable 需要在子线程中运行的代码     */    public void runOnExecutorServiceThread(Runnable runnable) {        mFixedThreadExecutor.execute(runnable);    }    public static boolean isNetworkConnected() {        if (MyApplication.c() != null) {            ConnectivityManager mConnectivityManager = (ConnectivityManager) MyApplication.c().getSystemService("connectivity");            NetworkInfo mNetworkInfo = mConnectivityManager.getActiveNetworkInfo();            if (mNetworkInfo != null) {                return mNetworkInfo.isAvailable();            }        } else {            LogUtils.logE("NetworkUtils", "Context is null");        }        return false;    }    public boolean isWifi(Context c) {        ConnectivityManager connectivityManager = (ConnectivityManager) c.getSystemService("connectivity");        NetworkInfo activeNetInfo = connectivityManager.getActiveNetworkInfo();        return activeNetInfo != null && activeNetInfo.getTypeName().equals("WIFI");    }    private OkHttpClient getOkHttpClient() {        if (ohc == null) {            ohc = new OkHttpClient.Builder()                    .connectTimeout(TIME_OUT, TimeUnit.MILLISECONDS)                    .readTimeout(TIME_OUT, TimeUnit.MILLISECONDS)                    .retryOnConnectionFailure(false)                    .build();        }        return ohc;    }    public okhttp3.Call get(String url, CustomCallBack customCallBack) {        LogUtils.logE(TAG, "url = " + url);        if (!isNetworkConnected()) {            ToastUtils.makeToast("网络未连接");            return null;        }        customCallBack.setUrl(url);        Request request = new Request.Builder()                .url(url)                .method("GET", null)                .build();        okhttp3.Call call = getInstance().getOkHttpClient().newCall(request);        call.enqueue(customCallBack);        return call;    }    public okhttp3.Call get(String url, CustomCallBack customCallBack, String strings) {        LogUtils.logE(TAG, "url = " + url);        if (!isNetworkConnected()) {            ToastUtils.makeToast("网络未连接");            return null;        }        customCallBack.setUrl(url);        Request request = new Request.Builder()                .url(url)                .method("GET", null)                .build();        okhttp3.Call call = getInstance().getOkHttpClient().newCall(request);        call.enqueue(customCallBack);        return call;    }    public okhttp3.Call post(String url, CustomCallBack customCallBack, String... strings) {        LogUtils.logE(TAG, "url = " + url);        if (!isNetworkConnected()) {            ToastUtils.makeToast("网络未连接");            return null;        }        customCallBack.setUrl(url);        FormBody.Builder builder = new FormBody.Builder();        String key = null;        String value = null;        for (int i = 0; i < strings.length; i++) {            if (i % 2 == 0) {                key = strings[i];                LogUtils.logE(TAG, "key = " + key);            } else {                value = strings[i];                LogUtils.logE(TAG, "value = " + value);                if (value == null) {                    value = "";                }                builder.add(key, value);            }        }        RequestBody formBody = builder.build();        Request request = new Request.Builder()                .url(url)                .post(formBody)                .build();        okhttp3.Call call = getInstance().getOkHttpClient().newCall(request);        call.enqueue(customCallBack);        return call;    }    public okhttp3.Call posts(String url, CustomCallBack customCallBack, String userId, String passWd) {        LogUtils.logE(TAG, "url = " + url);        if (!isNetworkConnected()) {            ToastUtils.makeToast("网络未连接");            return null;        }        customCallBack.setUrl(url);        FormBody.Builder builder = new FormBody.Builder();        builder.add("dbUser", userId);        builder.add("passwd", passWd);        RequestBody formBody = builder.build();        Request request = new Request.Builder()                .url(url)                .post(formBody)                .build();        okhttp3.Call call = getInstance().getOkHttpClient().newCall(request);        call.enqueue(customCallBack);        return call;    }    public okhttp3.Call postCancelSeat(String url, CustomCallBack customCallBack, String id, String oeisId) {        LogUtils.logE(TAG, "url = " + url);        if (!isNetworkConnected()) {            ToastUtils.makeToast("网络未连接");            return null;        }        customCallBack.setUrl(url);        FormBody.Builder builder = new FormBody.Builder();        builder.add("id", id);        builder.add("oeisId", oeisId);        RequestBody formBody = builder.build();        Request request = new Request.Builder()                .url(url)                .post(formBody)                .build();        okhttp3.Call call = getInstance().getOkHttpClient().newCall(request);        call.enqueue(customCallBack);        return call;    } }
原创粉丝点击