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; } }
网络请求之OKHttp3.0(工具类)
猜你喜欢
转载自blog.csdn.net/jackerjin123/article/details/78657288
今日推荐
周排行