RetrofitManager.java 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. package com.ht.gate;
  2. import com.google.gson.Gson;
  3. import com.google.gson.GsonBuilder;
  4. import java.util.concurrent.TimeUnit;
  5. import okhttp3.OkHttpClient;
  6. import okhttp3.logging.HttpLoggingInterceptor;
  7. import retrofit2.Retrofit;
  8. import retrofit2.adapter.rxjava2.RxJava2CallAdapterFactory;
  9. import retrofit2.converter.gson.GsonConverterFactory;
  10. public class RetrofitManager {
  11. // private final String BASE_URL = "http://localhost:8080/";
  12. private final String BASE_URL = "http://screen.crm.htsc:30000/";
  13. private static RetrofitManager sInstance;
  14. private Retrofit mRetrofit;
  15. public static RetrofitManager getInstance() {
  16. if (null == sInstance) {
  17. synchronized (RetrofitManager.class) {
  18. if (null == sInstance) {
  19. sInstance = new RetrofitManager();
  20. }
  21. }
  22. }
  23. return sInstance;
  24. }
  25. public void init() {
  26. if (mRetrofit == null) {
  27. //初始化一个OkHttpClient
  28. OkHttpClient.Builder builder = new OkHttpClient.Builder()
  29. .connectTimeout(30000, TimeUnit.MILLISECONDS)
  30. .readTimeout(30000, TimeUnit.MILLISECONDS)
  31. .writeTimeout(30000, TimeUnit.MILLISECONDS);
  32. HttpLoggingInterceptor loggingInterceptor = new HttpLoggingInterceptor();
  33. loggingInterceptor.setLevel(HttpLoggingInterceptor.Level.BODY);
  34. builder.addInterceptor(loggingInterceptor);
  35. OkHttpClient okHttpClient = builder.build();
  36. Gson gson = new GsonBuilder()
  37. .setDateFormat("yyyy-MM-dd HH:mm:ss")
  38. .create();
  39. //使用该OkHttpClient创建一个Retrofit对象
  40. mRetrofit = new Retrofit.Builder()
  41. //添加Gson数据格式转换器支持
  42. .addConverterFactory(GsonConverterFactory.create(gson))
  43. //添加RxJava语言支持
  44. .addCallAdapterFactory(RxJava2CallAdapterFactory.create())
  45. //指定网络请求client
  46. .client(okHttpClient)
  47. .baseUrl(BASE_URL)
  48. .build();
  49. }
  50. }
  51. public Retrofit getRetrofit() {
  52. if (mRetrofit == null) {
  53. throw new IllegalStateException("Retrofit instance hasn't init!");
  54. }
  55. return mRetrofit;
  56. }
  57. }