OkHttpClient.java 5.0 KB

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