OkHttpClient.java 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. package com.efunbox.base.util;
  2. import android.app.Activity;
  3. import android.content.Context;
  4. import android.os.Environment;
  5. import androidx.annotation.Nullable;
  6. import com.efunbox.base.callback.OkHttpCallback;
  7. import com.okhttplib.HttpInfo;
  8. import com.okhttplib.OkHttpUtil;
  9. import com.okhttplib.annotation.CacheType;
  10. import com.okhttplib.annotation.Encoding;
  11. import com.okhttplib.callback.BaseCallback;
  12. import com.okhttplib.cookie.PersistentCookieJar;
  13. import com.okhttplib.cookie.cache.SetCookieCache;
  14. import com.okhttplib.cookie.persistence.SharedPrefsCookiePersistor;
  15. import java.io.File;
  16. import java.util.HashMap;
  17. import java.util.Map;
  18. public class OkHttpClient {
  19. //初始化OKHTTP
  20. private static String downloadFileDir = Environment.getExternalStorageDirectory().getPath() + "/okHttp_download/";
  21. private static String cacheDir = Environment.getExternalStorageDirectory().getPath() + "/okHttp_cache";
  22. private static Map<String, String> mHeaders;
  23. public static void initOkHttpUtil(Context context) {
  24. OkHttpUtil.init(context)
  25. .setConnectTimeout(10)//连接超时时间
  26. .setWriteTimeout(300)//写超时时间
  27. .setReadTimeout(300)//读超时时间
  28. .setMaxCacheSize(10 * 1024 * 1024)//缓存空间大小
  29. .setCacheType(CacheType.FORCE_NETWORK)//缓存类型
  30. .setHttpLogTAG("HttpLog")//设置请求日志标识
  31. .setIsGzip(false)//Gzip压缩,需要服务端支持
  32. .setShowHttpLog(true)//显示请求日志
  33. .setShowLifecycleLog(false)//显示Activity销毁日志
  34. .setRetryOnConnectionFailure(false)//失败后不自动重连
  35. .setCachedDir(new File(cacheDir))//设置缓存目录
  36. .setDownloadFileDir(downloadFileDir)//文件下载保存目录
  37. .setResponseEncoding(Encoding.UTF_8)//设置全局的服务器响应编码
  38. .setRequestEncoding(Encoding.UTF_8)//设置全局的请求参数编码
  39. // .setHttpsCertificate("12306.cer")//设置全局Https证书
  40. .addResultInterceptor(HttpInterceptor.ResultInterceptor)//请求结果拦截器
  41. .addExceptionInterceptor(HttpInterceptor.ExceptionInterceptor)//请求链路异常拦截器
  42. .setCookieJar(new PersistentCookieJar(new SetCookieCache(), new SharedPrefsCookiePersistor(context)))//持久化cookie
  43. .build();
  44. refHeader();
  45. }
  46. private static void refHeader() {
  47. if (mHeaders == null) {
  48. mHeaders = new HashMap<>();
  49. }
  50. mHeaders.clear();
  51. // mHeaders.put("uid", Consts.getUID());
  52. // mHeaders.put("channelCode", Consts.getUmengChannel());
  53. }
  54. public static void doGetAsync(Activity activity, HttpInfo.Builder info, BaseCallback callback) {
  55. if (!info.build().getUrl().contains("posts/list")
  56. && !info.build().getUrl().contains("/userRead/check")
  57. && !info.build().getUrl().contains("/order/info/")) {
  58. }
  59. refHeader();
  60. OkHttpUtil.getDefault(activity).doGetAsync(info.addHeads(mHeaders).build(), new OkHttpCallback(callback));
  61. }
  62. public static void doGetAsync(HttpInfo.Builder info, BaseCallback callback) {
  63. if (!info.build().getUrl().contains("posts/list")
  64. && !info.build().getUrl().contains("/userRead/check")
  65. && !info.build().getUrl().contains("/order/info/")) {
  66. }
  67. refHeader();
  68. OkHttpUtil.getDefault().doGetAsync(info.addHeads(mHeaders).build(), new OkHttpCallback(callback));
  69. }
  70. public static void doPostAsync(@Nullable Activity activity, HttpInfo.Builder info, BaseCallback callback) {
  71. refHeader();
  72. OkHttpUtil.getDefault(activity).doPostAsync(info.addHeads(mHeaders).build(), new OkHttpCallback(callback));
  73. }
  74. public static void doPostAsync(HttpInfo.Builder info, BaseCallback callback) {
  75. refHeader();
  76. OkHttpUtil.getDefault().doPostAsync(info.addHeads(mHeaders).build(), new OkHttpCallback(callback));
  77. }
  78. public static void doPutAsync(Activity activity, HttpInfo.Builder info, BaseCallback callback) {
  79. OkHttpUtil.getDefault(activity).doPutAsync(info.addHeads(mHeaders).build(), new OkHttpCallback(callback));
  80. }
  81. public static void doDeleteAsync(Activity activity, HttpInfo.Builder info, BaseCallback callback) {
  82. OkHttpUtil.getDefault(activity).doDeleteAsync(info.addHeads(mHeaders).build(), new OkHttpCallback(callback));
  83. }
  84. public static void doUploadFile(Activity activity, HttpInfo.Builder info) {
  85. refHeader();
  86. OkHttpUtil.getDefault(activity).doUploadFileAsync(info.addHeads(mHeaders).build());
  87. }
  88. }