网络请求之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; } }
阅读全文
0 0
- 网络请求之OKHttp3.0(工具类)
- OkHttp3.0网络请求工具类
- 网络请求工具类之OkHttp3封装(一)(支持缓存、日志、拦截器等)
- 网络请求工具类之OkHttp3封装(二)上(支持请求取消、异步请求的线程切换)
- 网络请求工具类之OkHttp3封装(二)下(支持请求取消、异步请求的线程切换)
- 网络请求框架(OKHttp3.0)
- mvp okhttp3,网络请求
- OkHttp3请求网络回顾
- okhttp3.0的工具类
- Android网络请求框架之——okhttp3
- okhttp3(网络请求库)
- Android网络请求框架----okHttp3
- okhttp3的网络请求框架
- 网络请求篇--okhttp3框架
- okhttp3简单封装GET和POST请求工具类
- 【andorid】基于okhttp3网络请求帮助类(GET、POST)
- NetWorkTool工具类之网络请求
- okhttp3 工具类
- java--(多线程创建的两种方式Thread类和Runnable接口)
- Flume基础概述
- ping的二三事
- Ubuntu14.04.2中文显示与输入法设置
- 使用argparse解析命令行参数
- 网络请求之OKHttp3.0(工具类)
- ScrollView起始位置不是最顶部的解决办法
- 两种上传头像的方式(file文件)
- 基于ssm的在线(论坛【拟定】)系统
- Apache Commons 工具类介绍
- 《视觉SLAM十四讲》之开源库的安装
- 堆排序
- 自顶向下,逐步求精
- synchronized锁的优化