123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108 |
- package com.efunbox.base.util;
- import android.app.Activity;
- import android.content.Context;
- import android.os.Environment;
- import androidx.annotation.Nullable;
- import com.efunbox.base.callback.OkHttpCallback;
- import com.okhttplib.HttpInfo;
- import com.okhttplib.OkHttpUtil;
- import com.okhttplib.annotation.CacheType;
- import com.okhttplib.annotation.Encoding;
- import com.okhttplib.callback.BaseCallback;
- import com.okhttplib.cookie.PersistentCookieJar;
- import com.okhttplib.cookie.cache.SetCookieCache;
- import com.okhttplib.cookie.persistence.SharedPrefsCookiePersistor;
- import java.io.File;
- import java.util.HashMap;
- import java.util.Map;
- public class OkHttpClient {
- //初始化OKHTTP
- private static String downloadFileDir = Environment.getExternalStorageDirectory().getPath() + "/okHttp_download/";
- private static String cacheDir = Environment.getExternalStorageDirectory().getPath() + "/okHttp_cache";
- private static Map<String, String> mHeaders;
- public static void initOkHttpUtil(Context context) {
- OkHttpUtil.init(context)
- .setConnectTimeout(10)//连接超时时间
- .setWriteTimeout(300)//写超时时间
- .setReadTimeout(300)//读超时时间
- .setMaxCacheSize(10 * 1024 * 1024)//缓存空间大小
- .setCacheType(CacheType.FORCE_NETWORK)//缓存类型
- .setHttpLogTAG("HttpLog")//设置请求日志标识
- .setIsGzip(false)//Gzip压缩,需要服务端支持
- .setShowHttpLog(true)//显示请求日志
- .setShowLifecycleLog(false)//显示Activity销毁日志
- .setRetryOnConnectionFailure(false)//失败后不自动重连
- .setCachedDir(new File(cacheDir))//设置缓存目录
- .setDownloadFileDir(downloadFileDir)//文件下载保存目录
- .setResponseEncoding(Encoding.UTF_8)//设置全局的服务器响应编码
- .setRequestEncoding(Encoding.UTF_8)//设置全局的请求参数编码
- // .setHttpsCertificate("12306.cer")//设置全局Https证书
- .addResultInterceptor(HttpInterceptor.ResultInterceptor)//请求结果拦截器
- .addExceptionInterceptor(HttpInterceptor.ExceptionInterceptor)//请求链路异常拦截器
- .setCookieJar(new PersistentCookieJar(new SetCookieCache(), new SharedPrefsCookiePersistor(context)))//持久化cookie
- .build();
- refHeader();
- }
- private static void refHeader() {
- if (mHeaders == null) {
- mHeaders = new HashMap<>();
- }
- mHeaders.clear();
- // mHeaders.put("uid", Consts.getUID());
- // mHeaders.put("channelCode", Consts.getUmengChannel());
- }
- public static void doGetAsync(Activity activity, HttpInfo.Builder info, BaseCallback callback) {
- if (!info.build().getUrl().contains("posts/list")
- && !info.build().getUrl().contains("/userRead/check")
- && !info.build().getUrl().contains("/order/info/")) {
- }
- refHeader();
- OkHttpUtil.getDefault(activity).doGetAsync(info.addHeads(mHeaders).build(), new OkHttpCallback(callback));
- }
- public static void doGetAsync(HttpInfo.Builder info, BaseCallback callback) {
- if (!info.build().getUrl().contains("posts/list")
- && !info.build().getUrl().contains("/userRead/check")
- && !info.build().getUrl().contains("/order/info/")) {
- }
- refHeader();
- OkHttpUtil.getDefault().doGetAsync(info.addHeads(mHeaders).build(), new OkHttpCallback(callback));
- }
- public static void doPostAsync(@Nullable Activity activity, HttpInfo.Builder info, BaseCallback callback) {
- refHeader();
- OkHttpUtil.getDefault(activity).doPostAsync(info.addHeads(mHeaders).build(), new OkHttpCallback(callback));
- }
- public static void doPostAsync(HttpInfo.Builder info, BaseCallback callback) {
- refHeader();
- OkHttpUtil.getDefault().doPostAsync(info.addHeads(mHeaders).build(), new OkHttpCallback(callback));
- }
- public static void doPutAsync(Activity activity, HttpInfo.Builder info, BaseCallback callback) {
- OkHttpUtil.getDefault(activity).doPutAsync(info.addHeads(mHeaders).build(), new OkHttpCallback(callback));
- }
- public static void doDeleteAsync(Activity activity, HttpInfo.Builder info, BaseCallback callback) {
- OkHttpUtil.getDefault(activity).doDeleteAsync(info.addHeads(mHeaders).build(), new OkHttpCallback(callback));
- }
- public static void doUploadFile(Activity activity, HttpInfo.Builder info) {
- refHeader();
- OkHttpUtil.getDefault(activity).doUploadFileAsync(info.addHeads(mHeaders).build());
- }
- }
|