Android okhttp3使用实例,OKhttp设置请求超时时间,okgo使用demo
生活随笔
收集整理的這篇文章主要介紹了
Android okhttp3使用实例,OKhttp设置请求超时时间,okgo使用demo
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1、導入OKhttp依賴
compile 'com.squareup.okhttp3:okhttp:3.4.1'2、創建請求工具類
三個工具類
/*** 作者: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請求* @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<String, String> 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<String, String> paramsMap, Map<String, String> 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<String, String> 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<String, String> paramsMap, Map<String, String> 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<String, String> 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<String, String> paramsMap, Map<String, String> 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<String, String> 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<String, String> paramsMap, Map<String, String> 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<String, String> 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<String, String> 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<String, String> paramsMap, Map<String, String> 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<File> 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<String, String> paramsMap,List<File> 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<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請求,上傳多個文件,以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<String, File> 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<String, File> fileMap, String fileType, Map<String, String> 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<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();}/*** 下載文件,不帶參數*/public static void okHttpDownloadFile(String url,CallBackUtil.CallBackFile callBack) {okHttpDownloadFile(url,null,callBack);}/*** 下載文件,帶參數*/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);}/*** 加載圖片,帶參數*/public static void okHttpGetBitmap(String url,Map<String, String> paramsMap, CallBackUtil.CallBackBitmap callBack) {okHttpGet(url, paramsMap, null, callBack);}}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<AddOrCheckBean>() {@Overrideprotected void onSuccess(String subCode, String msg, AddOrCheckBean data) {LogPlus.e("校驗或添加成功 cabinetNum = " + data.cabinetNum);App.mGridNum = data.cabinetNum;queryDevInfo();}}).build());}返回結果
?
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云盤鏈接:?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
?
總結
以上是生活随笔為你收集整理的Android okhttp3使用实例,OKhttp设置请求超时时间,okgo使用demo的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: iPhone6 和iPhone6plus
- 下一篇: centos7配置ip