Android okhttp3使用实例,OKhttp设置请求超时时间,okgo使用demo

1、导入OKhttp依赖

compile 'com.squareup.okhttp3:okhttp:3.4.1'

2、创建请求工具类

三个工具类

Android okhttp3使用实例,OKhttp设置请求超时时间,okgo使用demo_第1张图片

/**
 * 作者:created by meixi
 * 邮箱:[email protected]
 * 日期:2019/4/10 15
 */

public class OkhttpUtil {

    public static final String METHOD_GET = "GET";
    public static final String METHOD_POST = "POST";
    public static final String METHOD_PUT = "PUT";
    public static final String METHOD_DELETE = "DELETE";

    public static final String FILE_TYPE_FILE = "file/*";
    public static final String FILE_TYPE_IMAGE = "image/*";
    public static final String FILE_TYPE_AUDIO = "audio/*";
    public static final String FILE_TYPE_VIDEO = "video/*";


    /**
     * get请求
     * @param url:url
     * @param callBack:回调接口,onFailure方法在请求失败时调用,onResponse方法在请求成功后调用,这两个方法都执行在UI线程。
     */
    public static void okHttpGet(String url, CallBackUtil callBack) {
        okHttpGet(url, null, null, callBack);
    }

    /**
     * get请求,可以传递参数
     * @param url:url
     * @param paramsMap:map集合,封装键值对参数
     * @param callBack:回调接口,onFailure方法在请求失败时调用,onResponse方法在请求成功后调用,这两个方法都执行在UI线程。
     */
    public static void okHttpGet(String url, Map paramsMap, CallBackUtil callBack) {
        okHttpGet(url, paramsMap, null, callBack);
    }

    /**
     * get请求,可以传递参数
     * @param url:url
     * @param paramsMap:map集合,封装键值对参数
     * @param headerMap:map集合,封装请求头键值对
     * @param callBack:回调接口,onFailure方法在请求失败时调用,onResponse方法在请求成功后调用,这两个方法都执行在UI线程。
     */
    public static void okHttpGet(String url, Map paramsMap, Map headerMap, CallBackUtil callBack) {
        new RequestUtil(METHOD_GET, url, paramsMap, headerMap, callBack).execute();
    }

    /**
     * post请求
     * @param url:url
     * @param callBack:回调接口,onFailure方法在请求失败时调用,onResponse方法在请求成功后调用,这两个方法都执行在UI线程。
     */
    public static void okHttpPost(String url, CallBackUtil callBack) {
        okHttpPost(url, null, callBack);
    }

    /**
     * post请求,可以传递参数
     * @param url:url
     * @param paramsMap:map集合,封装键值对参数
     * @param callBack:回调接口,onFailure方法在请求失败时调用,onResponse方法在请求成功后调用,这两个方法都执行在UI线程。
     */
    public static void okHttpPost(String url, Map paramsMap, CallBackUtil callBack) {
        okHttpPost(url, paramsMap, null, callBack);
    }

    /**
     * post请求,可以传递参数
     * @param url:url
     * @param paramsMap:map集合,封装键值对参数
     * @param headerMap:map集合,封装请求头键值对
     * @param callBack:回调接口,onFailure方法在请求失败时调用,onResponse方法在请求成功后调用,这两个方法都执行在UI线程。
     */
    public static void okHttpPost(String url, Map paramsMap, Map headerMap, CallBackUtil callBack) {
        new RequestUtil(METHOD_POST, url, paramsMap, headerMap, callBack).execute();
    }
    /**
     * post请求
     * @param url:url
     * @param callBack:回调接口,onFailure方法在请求失败时调用,onResponse方法在请求成功后调用,这两个方法都执行在UI线程。
     */
    public static void okHttpPut(String url, CallBackUtil callBack) {
        okHttpPut(url, null, callBack);
    }

    /**
     * post请求,可以传递参数
     * @param url:url
     * @param paramsMap:map集合,封装键值对参数
     * @param callBack:回调接口,onFailure方法在请求失败时调用,onResponse方法在请求成功后调用,这两个方法都执行在UI线程。
     */
    public static void okHttpPut(String url, Map paramsMap, CallBackUtil callBack) {
        okHttpPut(url, paramsMap, null, callBack);
    }

    /**
     * post请求,可以传递参数
     * @param url:url
     * @param paramsMap:map集合,封装键值对参数
     * @param headerMap:map集合,封装请求头键值对
     * @param callBack:回调接口,onFailure方法在请求失败时调用,onResponse方法在请求成功后调用,这两个方法都执行在UI线程。
     */
    public static void okHttpPut(String url, Map paramsMap, Map headerMap, CallBackUtil callBack) {
        new RequestUtil(METHOD_PUT, url, paramsMap, headerMap, callBack).execute();
    }
    /**
     * post请求
     * @param url:url
     * @param callBack:回调接口,onFailure方法在请求失败时调用,onResponse方法在请求成功后调用,这两个方法都执行在UI线程。
     */
    public static void okHttpDelete(String url, CallBackUtil callBack) {
        okHttpDelete(url, null, callBack);
    }

    /**
     * post请求,可以传递参数
     * @param url:url
     * @param paramsMap:map集合,封装键值对参数
     * @param callBack:回调接口,onFailure方法在请求失败时调用,onResponse方法在请求成功后调用,这两个方法都执行在UI线程。
     */
    public static void okHttpDelete(String url, Map paramsMap, CallBackUtil callBack) {
        okHttpDelete(url, paramsMap, null, callBack);
    }

    /**
     * post请求,可以传递参数
     * @param url:url
     * @param paramsMap:map集合,封装键值对参数
     * @param headerMap:map集合,封装请求头键值对
     * @param callBack:回调接口,onFailure方法在请求失败时调用,onResponse方法在请求成功后调用,这两个方法都执行在UI线程。
     */
    public static void okHttpDelete(String url, Map paramsMap, Map headerMap, CallBackUtil callBack) {
        new RequestUtil(METHOD_DELETE, url, paramsMap, headerMap, callBack).execute();
    }

    /**
     * post请求,可以传递参数
     * @param url:url
     * @param jsonStr:json格式的键值对参数
     * @param callBack:回调接口,onFailure方法在请求失败时调用,onResponse方法在请求成功后调用,这两个方法都执行在UI线程。
     */
    public static void okHttpPostJson(String url, String jsonStr, CallBackUtil callBack) {
        okHttpPostJson(url, jsonStr, null, callBack);
    }

    /**
     * post请求,可以传递参数
     * @param url:url
     * @param jsonStr:json格式的键值对参数
     * @param headerMap:map集合,封装请求头键值对
     * @param callBack:回调接口,onFailure方法在请求失败时调用,onResponse方法在请求成功后调用,这两个方法都执行在UI线程。
     */
    public static void okHttpPostJson(String url, String jsonStr, Map headerMap, CallBackUtil callBack) {
        new RequestUtil(METHOD_POST, url, jsonStr, headerMap, callBack).execute();
    }

    /**
     * post请求,上传单个文件
     * @param url:url
     * @param file:File对象
     * @param fileKey:上传参数时file对应的键
     * @param fileType:File类型,是image,video,audio,file
     * @param callBack:回调接口,onFailure方法在请求失败时调用,onResponse方法在请求成功后调用,这两个方法都执行在UI线程。还可以重写onProgress方法,得到上传进度
     */
    public static void okHttpUploadFile(String url, File file, String fileKey, String fileType, CallBackUtil callBack) {
        okHttpUploadFile(url, file, fileKey,fileType, null, callBack);
    }

    /**
     * post请求,上传单个文件
     * @param url:url
     * @param file:File对象
     * @param fileKey:上传参数时file对应的键
     * @param fileType:File类型,是image,video,audio,file
     * @param paramsMap:map集合,封装键值对参数
     * @param callBack:回调接口,onFailure方法在请求失败时调用,onResponse方法在请求成功后调用,这两个方法都执行在UI线程。还可以重写onProgress方法,得到上传进度
     */
    public static void okHttpUploadFile(String url, File file, String fileKey,String fileType, Map paramsMap, CallBackUtil callBack) {
        okHttpUploadFile(url, file,fileKey, fileType, paramsMap, null, callBack);
    }

    /**
     * post请求,上传单个文件
     * @param url:url
     * @param file:File对象
     * @param fileKey:上传参数时file对应的键
     * @param fileType:File类型,是image,video,audio,file
     * @param paramsMap:map集合,封装键值对参数
     * @param headerMap:map集合,封装请求头键值对
     * @param callBack:回调接口,onFailure方法在请求失败时调用,onResponse方法在请求成功后调用,这两个方法都执行在UI线程。还可以重写onProgress方法,得到上传进度
     */
    public static void okHttpUploadFile(String url, File file, String fileKey,String fileType, Map paramsMap, Map headerMap, CallBackUtil callBack) {
        new RequestUtil(METHOD_POST, url,paramsMap, file, fileKey,fileType,  headerMap, callBack).execute();
    }

    /**
     * post请求,上传多个文件,以list集合的形式
     * @param url:url
     * @param fileList:集合元素是File对象
     * @param fileKey:上传参数时fileList对应的键
     * @param fileType:File类型,是image,video,audio,file
     * @param callBack:回调接口,onFailure方法在请求失败时调用,onResponse方法在请求成功后调用,这两个方法都执行在UI线程。
     */
    public static void okHttpUploadListFile(String url, List fileList, String fileKey, String fileType, CallBackUtil callBack) {
        okHttpUploadListFile(url,null, fileList, fileKey, fileType, callBack);
    }

    /**
     * post请求,上传多个文件,以list集合的形式
     * @param url:url
     * @param fileList:集合元素是File对象
     * @param fileKey:上传参数时fileList对应的键
     * @param fileType:File类型,是image,video,audio,file
     * @param paramsMap:map集合,封装键值对参数
     * @param callBack:回调接口,onFailure方法在请求失败时调用,onResponse方法在请求成功后调用,这两个方法都执行在UI线程。
     */
    public static void okHttpUploadListFile(String url, Map paramsMap,List fileList, String fileKey, String fileType,  CallBackUtil callBack) {
        okHttpUploadListFile(url, paramsMap,fileList, fileKey, fileType, null, callBack);
    }

    /**
     * post请求,上传多个文件,以list集合的形式
     * @param url:url
     * @param fileList:集合元素是File对象
     * @param fileKey:上传参数时fileList对应的键
     * @param fileType:File类型,是image,video,audio,file
     * @param paramsMap:map集合,封装键值对参数
     * @param headerMap:map集合,封装请求头键值对
     * @param callBack:回调接口,onFailure方法在请求失败时调用,onResponse方法在请求成功后调用,这两个方法都执行在UI线程。
     */
    public static void okHttpUploadListFile(String url, Map paramsMap, List fileList, String fileKey, String fileType, Map headerMap, CallBackUtil callBack) {
        new RequestUtil(METHOD_POST, url,  paramsMap,fileList, fileKey, fileType, headerMap, callBack).execute();
    }

    /**
     * post请求,上传多个文件,以map集合的形式
     * @param url:url
     * @param fileMap:集合key是File对象对应的键,集合value是File对象
     * @param fileType:File类型,是image,video,audio,file
     * @param callBack:回调接口,onFailure方法在请求失败时调用,onResponse方法在请求成功后调用,这两个方法都执行在UI线程。
     */
    public static void okHttpUploadMapFile(String url, Map fileMap, String fileType, CallBackUtil callBack) {
        okHttpUploadMapFile(url, fileMap, fileType, null, callBack);
    }

    /**
     * post请求,上传多个文件,以map集合的形式
     * @param url:url
     * @param fileMap:集合key是File对象对应的键,集合value是File对象
     * @param fileType:File类型,是image,video,audio,file
     * @param paramsMap:map集合,封装键值对参数
     * @param callBack:回调接口,onFailure方法在请求失败时调用,onResponse方法在请求成功后调用,这两个方法都执行在UI线程。
     */
    public static void okHttpUploadMapFile(String url, Map fileMap, String fileType, Map paramsMap, CallBackUtil callBack) {
        okHttpUploadMapFile(url, fileMap, fileType, paramsMap, null, callBack);
    }

    /**
     * post请求,上传多个文件,以map集合的形式
     * @param url:url
     * @param fileMap:集合key是File对象对应的键,集合value是File对象
     * @param fileType:File类型,是image,video,audio,file
     * @param paramsMap:map集合,封装键值对参数
     * @param headerMap:map集合,封装请求头键值对
     * @param callBack:回调接口,onFailure方法在请求失败时调用,onResponse方法在请求成功后调用,这两个方法都执行在UI线程。
     */
    public static void okHttpUploadMapFile(String url, Map fileMap, String fileType, Map paramsMap, Map headerMap, CallBackUtil callBack) {
        new RequestUtil(METHOD_POST, url,paramsMap, fileMap, fileType,  headerMap, callBack).execute();
    }

    /**
     * 下载文件,不带参数
     */
    public static void okHttpDownloadFile(String url,CallBackUtil.CallBackFile callBack) {
        okHttpDownloadFile(url,null,callBack);
    }

    /**
     * 下载文件,带参数
     */
    public static void okHttpDownloadFile(String url,Map paramsMap,  CallBackUtil.CallBackFile callBack) {
        okHttpGet(url, paramsMap, null, callBack);
    }
    /**
     * 加载图片
     */
    public static void okHttpGetBitmap(String url, CallBackUtil.CallBackBitmap callBack) {
        okHttpGetBitmap(url, null, callBack);
    }
    /**
     * 加载图片,带参数
     */
    public static void okHttpGetBitmap(String url,Map paramsMap,  CallBackUtil.CallBackBitmap callBack) {
        okHttpGet(url, paramsMap, null, callBack);
    }


}

3、请求结果

Android okhttp3使用实例,OKhttp设置请求超时时间,okgo使用demo_第2张图片    Android okhttp3使用实例,OKhttp设置请求超时时间,okgo使用demo_第3张图片

 

设置超时

/**
 * 设置连接超时时间
 */
public final static int CONNECT_TIMEOUT = 60;
/**
 * 设置读取超时时间
 */
public final static int READ_TIMEOUT = 100;
/**
 * 设置写的超时时间
 */
public final static int WRITE_TIMEOUT = 60;

 

private OkHttpClient mOkHttpClient;//OKhttpClient对象
mOkHttpClient = new OkHttpClient.Builder()
        .connectTimeout(CONNECT_TIMEOUT, TimeUnit.SECONDS)//设置连接超时时间
        .readTimeout(READ_TIMEOUT, TimeUnit.SECONDS)//设置读取超时时间
        .writeTimeout(WRITE_TIMEOUT, TimeUnit.SECONDS)//设置写的超时时间
        .build();

 

2、okgo使用实例——非常简洁

public APIClient apiClient = APIClient.getApiClient();
/**
 * 1,校验&添加设备
 * 设备不存在-添加并返回成功  设备存在-返回成功
 */
private void addOrCheck() {
    apiClient.post(new APIParams.Builder()
            .pathUrl(Urls.ADDORCHECK)
            .param("deviceNo", App.mDevID)
            .callback(new AbsAPICallback() {
                @Override
                protected void onSuccess(String subCode, String msg, AddOrCheckBean data) {
                    LogPlus.e("校验或添加成功  cabinetNum = " + data.cabinetNum);
                    App.mGridNum = data.cabinetNum;
                    queryDevInfo();
                }
            })
            .build());

}

返回结果

Android okhttp3使用实例,OKhttp设置请求超时时间,okgo使用demo_第4张图片 

 

 

demo云盘链接: https://pan.baidu.com/s/17PBWTHAGjkn5P4dHFxBW5g

密码在线回复:QQ1085220040

OKhttpdemo链接:https://download.csdn.net/download/meixi_android/11103267

okgo使用demo:https://download.csdn.net/download/meixi_android/12709690

 

你可能感兴趣的:(移动开发)