BaseRetrofit.java 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. package com.ytpm.hydtw.network;
  2. import static com.ytpm.hydtw.network.api.api.BASE_URL_V2;
  3. import com.blankj.utilcode.util.LogUtils;
  4. import com.ytpm.hydtw.network.api.MRefrofitInterface;
  5. import org.json.JSONObject;
  6. import java.util.HashMap;
  7. import java.util.IdentityHashMap;
  8. import java.util.Iterator;
  9. import java.util.Map;
  10. import okhttp3.MediaType;
  11. import okhttp3.RequestBody;
  12. import retrofit2.Retrofit;
  13. import retrofit2.adapter.rxjava.RxJavaCallAdapterFactory;
  14. import retrofit2.converter.gson.GsonConverterFactory;
  15. /**
  16. * @author mmmmg
  17. * @description:
  18. * @date :2019/12/4 10:52
  19. */
  20. public class BaseRetrofit {
  21. private static BaseRetrofit instance;
  22. private final MRefrofitInterface apiService;
  23. private int tokenTime;
  24. private int reTokenTime;
  25. public static BaseRetrofit getInstance() {
  26. if (instance == null) {
  27. synchronized (BaseRetrofit.class) {
  28. if (instance == null) {
  29. instance = new BaseRetrofit();
  30. }
  31. }
  32. }
  33. return instance;
  34. }
  35. private BaseRetrofit() {
  36. this.apiService = new Retrofit.Builder()
  37. .baseUrl(BASE_URL_V2)
  38. .addConverterFactory(GsonConverterFactory.create())
  39. .addCallAdapterFactory(RxJavaCallAdapterFactory.create())
  40. .build().create(MRefrofitInterface.class);
  41. }
  42. public MRefrofitInterface getApiService() {
  43. return this.apiService;
  44. }
  45. /**
  46. * 转换为 form-data
  47. *
  48. * @param requestDataMap
  49. * @return
  50. */
  51. public static Map<String, RequestBody> generateRequestBody(Map<String, String> requestDataMap) {
  52. Map<String, RequestBody> requestBodyMap = new HashMap<>();
  53. for (String key : requestDataMap.keySet()) {
  54. RequestBody requestBody = RequestBody.create(MediaType.parse("multipart/form-data; charset=utf-8"), requestDataMap.get(key) == null ? "" : requestDataMap.get(key));
  55. requestBodyMap.put(key, requestBody);
  56. }
  57. return requestBodyMap;
  58. }
  59. public static RequestBody getRequestBody(HashMap<String, String> hashMap) {
  60. StringBuffer data = new StringBuffer();
  61. if (hashMap != null && hashMap.size() > 0) {
  62. Iterator iter = hashMap.entrySet().iterator();
  63. while (iter.hasNext()) {
  64. Map.Entry entry = (Map.Entry) iter.next();
  65. Object key = entry.getKey();
  66. Object val = entry.getValue();
  67. data.append(key).append("=").append(val).append("&");
  68. }
  69. }
  70. String jso = data.substring(0, data.length() - 1);
  71. LogUtils.e("dfdfdfdf" + jso);
  72. RequestBody requestBody = RequestBody.create(MediaType.parse("application/json; charset=utf-8"), jso);
  73. return requestBody;
  74. }
  75. public static RequestBody getRequestBodyByMapToJson(HashMap<String, Object> hashMap) {
  76. JSONObject jsonObject = new JSONObject(hashMap);
  77. LogUtils.i("BaseRetrofit", jsonObject.toString());
  78. RequestBody requestBody = RequestBody.create(MediaType.parse("application/json; charset=utf-8"), jsonObject.toString());
  79. return requestBody;
  80. }
  81. /**
  82. * 转换为 form-data
  83. *
  84. * @param requestDataMap
  85. * @return
  86. */
  87. public static IdentityHashMap<String, RequestBody> gerIdentitiMap(IdentityHashMap<String, String> requestDataMap) {
  88. IdentityHashMap<String, RequestBody> requestBodyMap = new IdentityHashMap<>();
  89. for (String key : requestDataMap.keySet()) {
  90. RequestBody requestBody = RequestBody.create(MediaType.parse("multipart/form-data"), requestDataMap.get(key) == null ? "" : requestDataMap.get(key));
  91. requestBodyMap.put(key, requestBody);
  92. }
  93. return requestBodyMap;
  94. }
  95. }