關於Retrofit的使用

public class RetrofitManager {

private static RetrofitManager retrofitManager;
private final Retrofit retrofit;

private RetrofitManager(){
    Retrofit.Builder builder = new Retrofit.Builder();
    builder.baseUrl(Api.BASE_URL);
    builder.addCallAdapterFactory(RxJava2CallAdapterFactory.create());
    builder.addConverterFactory(GsonConverterFactory.create());
    builder.client(OkHttpUtils.getInstance().getmOkHttpclient());
    retrofit = builder.build();
}
public static RetrofitManager getInstance(){
    if (retrofitManager==null){
        synchronized (RetrofitManager.class){
            if (retrofitManager==null){
                retrofitManager = new RetrofitManager();
            }
        }
    }
    return retrofitManager;
}

private T createService(Class service){
T t=retrofit.create(service);
return t;
}
public ApiService creatService(){
ApiService apiService = retrofit.create(ApiService.class);
return apiService;
}

}

/////okhttp的簡單使用
public class OkHttpUtils {

private static OkHttpUtils okHttpUtils;
private OkHttpClient okhttpclient;

private OkHttpUtils(){
    OkHttpClient.Builder builder = new OkHttpClient.Builder();
    builder.connectTimeout(5000,TimeUnit.MILLISECONDS);
    builder.readTimeout(5000,TimeUnit.MILLISECONDS);
    builder.writeTimeout(5000,TimeUnit.MILLISECONDS);
    builder.addInterceptor(new HttpLoggingInterceptor(new HttpLoggingInterceptor.Logger() {
        @Override
        public void log(String message) {
            Log.i("xxx",message);
        }
    }).setLevel(HttpLoggingInterceptor.Level.BODY));
    okhttpclient = builder.build();
}
public static OkHttpUtils getInstance(){
    if (okHttpUtils==null){
        synchronized (OkHttpUtils.class){
            if (okHttpUtils==null){
                okHttpUtils = new OkHttpUtils();
            }
        }
    }
    return okHttpUtils;
}
public OkHttpClient getmOkHttpclient(){
    return okhttpclient;
}

}

///application初始化數據庫
public static DaoSession daoSession;
@Override
public void onCreate() {
super.onCreate();
initGreenDao("");
}
private void initGreenDao(String s) {
DaoMaster.DevOpenHelper helper = new DaoMaster.DevOpenHelper(this, “aserbao.db”);
SQLiteDatabase writableDatabase = helper.getWritableDatabase();
DaoMaster daoMaster = new DaoMaster(writableDatabase);
daoSession = daoMaster.newSession();
}

//原始化 Model
public class ShowModel {
public void fragoneshow(final HttpDataListener listener){
ApiService apiService = RetrofitManager.getInstance().creatService();
Observable fragone = apiService.fragone();
fragone.observeOn(AndroidSchedulers.mainThread())
.subscribeOn(Schedulers.io())
.subscribe(new Observer() {
@Override
public void onSubscribe(Disposable d) {

                }

                @Override
                public void onNext(FragOneEnity fragOneEnity) {
                    listener.onDataSuccess(fragOneEnity);
                }

                @Override
                public void onError(Throwable e) {
                    listener.onFailer(e.getMessage());
                }

                @Override
                public void onComplete() {

                }
            });
}

}

///////////model中的()參數
public interface HttpDataListener {
void onDataSuccess(T data);
void onFailer(String msg);
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章