/*
* Copyright 2015 GoIn Inc. All rights reserved.
*/
package com.liuguangqiang.idaily.domain;
import com.github.aurae.retrofit2.LoganSquareConverterFactory;
import okhttp3.OkHttpClient;
import okhttp3.logging.HttpLoggingInterceptor;
import retrofit2.Retrofit;
import retrofit2.adapter.rxjava.RxJavaCallAdapterFactory;
/**
* A helper of retrofit2 for creating restful service easier.
* <p/>
* Created by Eric on 15/10/18.
*/
public class RetrofitClient {
private static String HOST_NAME = "http://news-at.zhihu.com/api/4/";
private static final RetrofitClient instance = new RetrofitClient();
public static RetrofitClient getInstance() {
return instance;
}
private Retrofit retrofit;
public RetrofitClient() {
createRetrofit();
}
private void createRetrofit() {
HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor();
interceptor.setLevel(HttpLoggingInterceptor.Level.HEADERS);
OkHttpClient okHttpClient = new OkHttpClient.Builder()
.addInterceptor(interceptor)
.build();
retrofit = new Retrofit.Builder()
.baseUrl(HOST_NAME)
.client(okHttpClient)
.addConverterFactory(LoganSquareConverterFactory.create())
.addCallAdapterFactory(RxJavaCallAdapterFactory.create())
.build();
}
public <T> T create(Class<?> clazz) {
return (T) retrofit.create(clazz);
}
}