Android okhttp3使用实例,OKhttp设置请求超时时间,okgo使用demo
生活随笔
收集整理的這篇文章主要介紹了
Android okhttp3使用实例,OKhttp设置请求超时时间,okgo使用demo
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
1、導(dǎo)入OKhttp依賴(lài)
compile 'com.squareup.okhttp3:okhttp:3.4.1'2、創(chuàng)建請(qǐng)求工具類(lèi)
三個(gè)工具類(lèi)
/*** 作者:created by meixi* 郵箱:15913707499@163.com* 日期: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請(qǐng)求* @param url:url* @param callBack:回調(diào)接口,onFailure方法在請(qǐng)求失敗時(shí)調(diào)用,onResponse方法在請(qǐng)求成功后調(diào)用,這兩個(gè)方法都執(zhí)行在UI線(xiàn)程。*/public static void okHttpGet(String url, CallBackUtil callBack) {okHttpGet(url, null, null, callBack);}/*** get請(qǐng)求,可以傳遞參數(shù)* @param url:url* @param paramsMap:map集合,封裝鍵值對(duì)參數(shù)* @param callBack:回調(diào)接口,onFailure方法在請(qǐng)求失敗時(shí)調(diào)用,onResponse方法在請(qǐng)求成功后調(diào)用,這兩個(gè)方法都執(zhí)行在UI線(xiàn)程。*/public static void okHttpGet(String url, Map<String, String> paramsMap, CallBackUtil callBack) {okHttpGet(url, paramsMap, null, callBack);}/*** get請(qǐng)求,可以傳遞參數(shù)* @param url:url* @param paramsMap:map集合,封裝鍵值對(duì)參數(shù)* @param headerMap:map集合,封裝請(qǐng)求頭鍵值對(duì)* @param callBack:回調(diào)接口,onFailure方法在請(qǐng)求失敗時(shí)調(diào)用,onResponse方法在請(qǐng)求成功后調(diào)用,這兩個(gè)方法都執(zhí)行在UI線(xiàn)程。*/public static void okHttpGet(String url, Map<String, String> paramsMap, Map<String, String> headerMap, CallBackUtil callBack) {new RequestUtil(METHOD_GET, url, paramsMap, headerMap, callBack).execute();}/*** post請(qǐng)求* @param url:url* @param callBack:回調(diào)接口,onFailure方法在請(qǐng)求失敗時(shí)調(diào)用,onResponse方法在請(qǐng)求成功后調(diào)用,這兩個(gè)方法都執(zhí)行在UI線(xiàn)程。*/public static void okHttpPost(String url, CallBackUtil callBack) {okHttpPost(url, null, callBack);}/*** post請(qǐng)求,可以傳遞參數(shù)* @param url:url* @param paramsMap:map集合,封裝鍵值對(duì)參數(shù)* @param callBack:回調(diào)接口,onFailure方法在請(qǐng)求失敗時(shí)調(diào)用,onResponse方法在請(qǐng)求成功后調(diào)用,這兩個(gè)方法都執(zhí)行在UI線(xiàn)程。*/public static void okHttpPost(String url, Map<String, String> paramsMap, CallBackUtil callBack) {okHttpPost(url, paramsMap, null, callBack);}/*** post請(qǐng)求,可以傳遞參數(shù)* @param url:url* @param paramsMap:map集合,封裝鍵值對(duì)參數(shù)* @param headerMap:map集合,封裝請(qǐng)求頭鍵值對(duì)* @param callBack:回調(diào)接口,onFailure方法在請(qǐng)求失敗時(shí)調(diào)用,onResponse方法在請(qǐng)求成功后調(diào)用,這兩個(gè)方法都執(zhí)行在UI線(xiàn)程。*/public static void okHttpPost(String url, Map<String, String> paramsMap, Map<String, String> headerMap, CallBackUtil callBack) {new RequestUtil(METHOD_POST, url, paramsMap, headerMap, callBack).execute();}/*** post請(qǐng)求* @param url:url* @param callBack:回調(diào)接口,onFailure方法在請(qǐng)求失敗時(shí)調(diào)用,onResponse方法在請(qǐng)求成功后調(diào)用,這兩個(gè)方法都執(zhí)行在UI線(xiàn)程。*/public static void okHttpPut(String url, CallBackUtil callBack) {okHttpPut(url, null, callBack);}/*** post請(qǐng)求,可以傳遞參數(shù)* @param url:url* @param paramsMap:map集合,封裝鍵值對(duì)參數(shù)* @param callBack:回調(diào)接口,onFailure方法在請(qǐng)求失敗時(shí)調(diào)用,onResponse方法在請(qǐng)求成功后調(diào)用,這兩個(gè)方法都執(zhí)行在UI線(xiàn)程。*/public static void okHttpPut(String url, Map<String, String> paramsMap, CallBackUtil callBack) {okHttpPut(url, paramsMap, null, callBack);}/*** post請(qǐng)求,可以傳遞參數(shù)* @param url:url* @param paramsMap:map集合,封裝鍵值對(duì)參數(shù)* @param headerMap:map集合,封裝請(qǐng)求頭鍵值對(duì)* @param callBack:回調(diào)接口,onFailure方法在請(qǐng)求失敗時(shí)調(diào)用,onResponse方法在請(qǐng)求成功后調(diào)用,這兩個(gè)方法都執(zhí)行在UI線(xiàn)程。*/public static void okHttpPut(String url, Map<String, String> paramsMap, Map<String, String> headerMap, CallBackUtil callBack) {new RequestUtil(METHOD_PUT, url, paramsMap, headerMap, callBack).execute();}/*** post請(qǐng)求* @param url:url* @param callBack:回調(diào)接口,onFailure方法在請(qǐng)求失敗時(shí)調(diào)用,onResponse方法在請(qǐng)求成功后調(diào)用,這兩個(gè)方法都執(zhí)行在UI線(xiàn)程。*/public static void okHttpDelete(String url, CallBackUtil callBack) {okHttpDelete(url, null, callBack);}/*** post請(qǐng)求,可以傳遞參數(shù)* @param url:url* @param paramsMap:map集合,封裝鍵值對(duì)參數(shù)* @param callBack:回調(diào)接口,onFailure方法在請(qǐng)求失敗時(shí)調(diào)用,onResponse方法在請(qǐng)求成功后調(diào)用,這兩個(gè)方法都執(zhí)行在UI線(xiàn)程。*/public static void okHttpDelete(String url, Map<String, String> paramsMap, CallBackUtil callBack) {okHttpDelete(url, paramsMap, null, callBack);}/*** post請(qǐng)求,可以傳遞參數(shù)* @param url:url* @param paramsMap:map集合,封裝鍵值對(duì)參數(shù)* @param headerMap:map集合,封裝請(qǐng)求頭鍵值對(duì)* @param callBack:回調(diào)接口,onFailure方法在請(qǐng)求失敗時(shí)調(diào)用,onResponse方法在請(qǐng)求成功后調(diào)用,這兩個(gè)方法都執(zhí)行在UI線(xiàn)程。*/public static void okHttpDelete(String url, Map<String, String> paramsMap, Map<String, String> headerMap, CallBackUtil callBack) {new RequestUtil(METHOD_DELETE, url, paramsMap, headerMap, callBack).execute();}/*** post請(qǐng)求,可以傳遞參數(shù)* @param url:url* @param jsonStr:json格式的鍵值對(duì)參數(shù)* @param callBack:回調(diào)接口,onFailure方法在請(qǐng)求失敗時(shí)調(diào)用,onResponse方法在請(qǐng)求成功后調(diào)用,這兩個(gè)方法都執(zhí)行在UI線(xiàn)程。*/public static void okHttpPostJson(String url, String jsonStr, CallBackUtil callBack) {okHttpPostJson(url, jsonStr, null, callBack);}/*** post請(qǐng)求,可以傳遞參數(shù)* @param url:url* @param jsonStr:json格式的鍵值對(duì)參數(shù)* @param headerMap:map集合,封裝請(qǐng)求頭鍵值對(duì)* @param callBack:回調(diào)接口,onFailure方法在請(qǐng)求失敗時(shí)調(diào)用,onResponse方法在請(qǐng)求成功后調(diào)用,這兩個(gè)方法都執(zhí)行在UI線(xiàn)程。*/public static void okHttpPostJson(String url, String jsonStr, Map<String, String> headerMap, CallBackUtil callBack) {new RequestUtil(METHOD_POST, url, jsonStr, headerMap, callBack).execute();}/*** post請(qǐng)求,上傳單個(gè)文件* @param url:url* @param file:File對(duì)象* @param fileKey:上傳參數(shù)時(shí)file對(duì)應(yīng)的鍵* @param fileType:File類(lèi)型,是image,video,audio,file* @param callBack:回調(diào)接口,onFailure方法在請(qǐng)求失敗時(shí)調(diào)用,onResponse方法在請(qǐng)求成功后調(diào)用,這兩個(gè)方法都執(zhí)行在UI線(xiàn)程。還可以重寫(xiě)onProgress方法,得到上傳進(jìn)度*/public static void okHttpUploadFile(String url, File file, String fileKey, String fileType, CallBackUtil callBack) {okHttpUploadFile(url, file, fileKey,fileType, null, callBack);}/*** post請(qǐng)求,上傳單個(gè)文件* @param url:url* @param file:File對(duì)象* @param fileKey:上傳參數(shù)時(shí)file對(duì)應(yīng)的鍵* @param fileType:File類(lèi)型,是image,video,audio,file* @param paramsMap:map集合,封裝鍵值對(duì)參數(shù)* @param callBack:回調(diào)接口,onFailure方法在請(qǐng)求失敗時(shí)調(diào)用,onResponse方法在請(qǐng)求成功后調(diào)用,這兩個(gè)方法都執(zhí)行在UI線(xiàn)程。還可以重寫(xiě)onProgress方法,得到上傳進(jìn)度*/public static void okHttpUploadFile(String url, File file, String fileKey,String fileType, Map<String, String> paramsMap, CallBackUtil callBack) {okHttpUploadFile(url, file,fileKey, fileType, paramsMap, null, callBack);}/*** post請(qǐng)求,上傳單個(gè)文件* @param url:url* @param file:File對(duì)象* @param fileKey:上傳參數(shù)時(shí)file對(duì)應(yīng)的鍵* @param fileType:File類(lèi)型,是image,video,audio,file* @param paramsMap:map集合,封裝鍵值對(duì)參數(shù)* @param headerMap:map集合,封裝請(qǐng)求頭鍵值對(duì)* @param callBack:回調(diào)接口,onFailure方法在請(qǐng)求失敗時(shí)調(diào)用,onResponse方法在請(qǐng)求成功后調(diào)用,這兩個(gè)方法都執(zhí)行在UI線(xiàn)程。還可以重寫(xiě)onProgress方法,得到上傳進(jìn)度*/public static void okHttpUploadFile(String url, File file, String fileKey,String fileType, Map<String, String> paramsMap, Map<String, String> headerMap, CallBackUtil callBack) {new RequestUtil(METHOD_POST, url,paramsMap, file, fileKey,fileType, headerMap, callBack).execute();}/*** post請(qǐng)求,上傳多個(gè)文件,以list集合的形式* @param url:url* @param fileList:集合元素是File對(duì)象* @param fileKey:上傳參數(shù)時(shí)fileList對(duì)應(yīng)的鍵* @param fileType:File類(lèi)型,是image,video,audio,file* @param callBack:回調(diào)接口,onFailure方法在請(qǐng)求失敗時(shí)調(diào)用,onResponse方法在請(qǐng)求成功后調(diào)用,這兩個(gè)方法都執(zhí)行在UI線(xiàn)程。*/public static void okHttpUploadListFile(String url, List<File> fileList, String fileKey, String fileType, CallBackUtil callBack) {okHttpUploadListFile(url,null, fileList, fileKey, fileType, callBack);}/*** post請(qǐng)求,上傳多個(gè)文件,以list集合的形式* @param url:url* @param fileList:集合元素是File對(duì)象* @param fileKey:上傳參數(shù)時(shí)fileList對(duì)應(yīng)的鍵* @param fileType:File類(lèi)型,是image,video,audio,file* @param paramsMap:map集合,封裝鍵值對(duì)參數(shù)* @param callBack:回調(diào)接口,onFailure方法在請(qǐng)求失敗時(shí)調(diào)用,onResponse方法在請(qǐng)求成功后調(diào)用,這兩個(gè)方法都執(zhí)行在UI線(xiàn)程。*/public static void okHttpUploadListFile(String url, Map<String, String> paramsMap,List<File> fileList, String fileKey, String fileType, CallBackUtil callBack) {okHttpUploadListFile(url, paramsMap,fileList, fileKey, fileType, null, callBack);}/*** post請(qǐng)求,上傳多個(gè)文件,以list集合的形式* @param url:url* @param fileList:集合元素是File對(duì)象* @param fileKey:上傳參數(shù)時(shí)fileList對(duì)應(yīng)的鍵* @param fileType:File類(lèi)型,是image,video,audio,file* @param paramsMap:map集合,封裝鍵值對(duì)參數(shù)* @param headerMap:map集合,封裝請(qǐng)求頭鍵值對(duì)* @param callBack:回調(diào)接口,onFailure方法在請(qǐng)求失敗時(shí)調(diào)用,onResponse方法在請(qǐng)求成功后調(diào)用,這兩個(gè)方法都執(zhí)行在UI線(xiàn)程。*/public static void okHttpUploadListFile(String url, Map<String, String> paramsMap, List<File> fileList, String fileKey, String fileType, Map<String, String> headerMap, CallBackUtil callBack) {new RequestUtil(METHOD_POST, url, paramsMap,fileList, fileKey, fileType, headerMap, callBack).execute();}/*** post請(qǐng)求,上傳多個(gè)文件,以map集合的形式* @param url:url* @param fileMap:集合key是File對(duì)象對(duì)應(yīng)的鍵,集合value是File對(duì)象* @param fileType:File類(lèi)型,是image,video,audio,file* @param callBack:回調(diào)接口,onFailure方法在請(qǐng)求失敗時(shí)調(diào)用,onResponse方法在請(qǐng)求成功后調(diào)用,這兩個(gè)方法都執(zhí)行在UI線(xiàn)程。*/public static void okHttpUploadMapFile(String url, Map<String, File> fileMap, String fileType, CallBackUtil callBack) {okHttpUploadMapFile(url, fileMap, fileType, null, callBack);}/*** post請(qǐng)求,上傳多個(gè)文件,以map集合的形式* @param url:url* @param fileMap:集合key是File對(duì)象對(duì)應(yīng)的鍵,集合value是File對(duì)象* @param fileType:File類(lèi)型,是image,video,audio,file* @param paramsMap:map集合,封裝鍵值對(duì)參數(shù)* @param callBack:回調(diào)接口,onFailure方法在請(qǐng)求失敗時(shí)調(diào)用,onResponse方法在請(qǐng)求成功后調(diào)用,這兩個(gè)方法都執(zhí)行在UI線(xiàn)程。*/public static void okHttpUploadMapFile(String url, Map<String, File> fileMap, String fileType, Map<String, String> paramsMap, CallBackUtil callBack) {okHttpUploadMapFile(url, fileMap, fileType, paramsMap, null, callBack);}/*** post請(qǐng)求,上傳多個(gè)文件,以map集合的形式* @param url:url* @param fileMap:集合key是File對(duì)象對(duì)應(yīng)的鍵,集合value是File對(duì)象* @param fileType:File類(lèi)型,是image,video,audio,file* @param paramsMap:map集合,封裝鍵值對(duì)參數(shù)* @param headerMap:map集合,封裝請(qǐng)求頭鍵值對(duì)* @param callBack:回調(diào)接口,onFailure方法在請(qǐng)求失敗時(shí)調(diào)用,onResponse方法在請(qǐng)求成功后調(diào)用,這兩個(gè)方法都執(zhí)行在UI線(xiàn)程。*/public static void okHttpUploadMapFile(String url, Map<String, File> fileMap, String fileType, Map<String, String> paramsMap, Map<String, String> headerMap, CallBackUtil callBack) {new RequestUtil(METHOD_POST, url,paramsMap, fileMap, fileType, headerMap, callBack).execute();}/*** 下載文件,不帶參數(shù)*/public static void okHttpDownloadFile(String url,CallBackUtil.CallBackFile callBack) {okHttpDownloadFile(url,null,callBack);}/*** 下載文件,帶參數(shù)*/public static void okHttpDownloadFile(String url,Map<String, String> paramsMap, CallBackUtil.CallBackFile callBack) {okHttpGet(url, paramsMap, null, callBack);}/*** 加載圖片*/public static void okHttpGetBitmap(String url, CallBackUtil.CallBackBitmap callBack) {okHttpGetBitmap(url, null, callBack);}/*** 加載圖片,帶參數(shù)*/public static void okHttpGetBitmap(String url,Map<String, String> paramsMap, CallBackUtil.CallBackBitmap callBack) {okHttpGet(url, paramsMap, null, callBack);}}3、請(qǐng)求結(jié)果
? ??
?
設(shè)置超時(shí)
/*** 設(shè)置連接超時(shí)時(shí)間*/ public final static int CONNECT_TIMEOUT = 60; /*** 設(shè)置讀取超時(shí)時(shí)間*/ public final static int READ_TIMEOUT = 100; /*** 設(shè)置寫(xiě)的超時(shí)時(shí)間*/ public final static int WRITE_TIMEOUT = 60;?
private OkHttpClient mOkHttpClient;//OKhttpClient對(duì)象 mOkHttpClient = new OkHttpClient.Builder().connectTimeout(CONNECT_TIMEOUT, TimeUnit.SECONDS)//設(shè)置連接超時(shí)時(shí)間.readTimeout(READ_TIMEOUT, TimeUnit.SECONDS)//設(shè)置讀取超時(shí)時(shí)間.writeTimeout(WRITE_TIMEOUT, TimeUnit.SECONDS)//設(shè)置寫(xiě)的超時(shí)時(shí)間.build();?
2、okgo使用實(shí)例——非常簡(jiǎn)潔
public APIClient apiClient = APIClient.getApiClient(); /*** 1,校驗(yàn)&添加設(shè)備* 設(shè)備不存在-添加并返回成功 設(shè)備存在-返回成功*/ private void addOrCheck() {apiClient.post(new APIParams.Builder().pathUrl(Urls.ADDORCHECK).param("deviceNo", App.mDevID).callback(new AbsAPICallback<AddOrCheckBean>() {@Overrideprotected void onSuccess(String subCode, String msg, AddOrCheckBean data) {LogPlus.e("校驗(yàn)或添加成功 cabinetNum = " + data.cabinetNum);App.mGridNum = data.cabinetNum;queryDevInfo();}}).build());}返回結(jié)果
?
APIParams APIClient public Map getParamsMap(){return paramMap; } .params(params.getParamsMap(), false) private static Gson mGSon; public static String parseObjToJsonStr(Object srcObj) {String result = "";if (mGSon == null) {mGSon = new GsonBuilder().disableHtmlEscaping().create();}try {result = mGSon.toJson(srcObj);} catch (Exception e) {Log.getStackTraceString(e);}return result; }?
APIResponseCallback params.callback.onSuccess(response.body().code, responseInfo, null);?
?
?
demo云盤(pán)鏈接:?https://pan.baidu.com/s/17PBWTHAGjkn5P4dHFxBW5g
密碼在線(xiàn)回復(fù):QQ1085220040
OKhttpdemo鏈接:https://download.csdn.net/download/meixi_android/11103267
okgo使用demo:https://download.csdn.net/download/meixi_android/12709690
?
總結(jié)
以上是生活随笔為你收集整理的Android okhttp3使用实例,OKhttp设置请求超时时间,okgo使用demo的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: iPhone6 和iPhone6plus
- 下一篇: Android 实现指纹识别demo