/**
* Retrofit帮助类
*/
public class RetrofitHelper {
/** 测试服务器路劲*/
// private static final String API_SERVER = “http://”;
/* 正式服务器路径/
private static final String API_SERVER = “https://”; //接口
private static OkHttpClient mClient;
private Retrofit mRetrofit;
private RetrofitHelper() {
mClient = OkHttpClientHelper.getInstance().getOkHttpClient();
}
private static RetrofitHelper helper;
//单例 保证对象唯一
public static RetrofitHelper getInstance() {
if (helper == null) {
synchronized (RetrofitHelper.class) {
if (helper == null) {
helper = new RetrofitHelper();
}
}
}
return helper;
}
//获取Retrofit对象
public Retrofit getRetrofit() {
if (mClient == null) {
mClient = OkHttpClientHelper.getInstance().getOkHttpClient();
}
if (mRetrofit == null) {
mRetrofit = new Retrofit.Builder()
.baseUrl(API_SERVER + "/")
// .addConverterFactory(GsonConverterFactory.create()) //添加Gson支持
//TODO 修改--java.lang.IllegalStateException: Fatal Exception thrown on Scheduler.Worker thread.
.addConverterFactory(GsonConverterFactory.create(new Gson())) //添加Gson支持
.addCallAdapterFactory(RxJavaCallAdapterFactory.create()) //添加RxJava支持
.client(mClient) //关联okhttp
.build();
}
return mRetrofit;
}
}
public class HttpUtils {
private static INetService mService = getService();
/**
* 首页的数据
*/
public static void requestGetHomeData(String alt, Subscriber subscriber) {
setSubscriber(mService.getHomeDataPost(alt), subscriber);
}
//订阅事件
public static <T> void setSubscriber(Observable<T> observable, Subscriber<T> subscriber) {
// observable.subscribeOn(Schedulers.newThread())
// .observeOn(AndroidSchedulers.mainThread())
// .subscribe(subscriber);
observable.subscribeOn(Schedulers.io())
.subscribeOn(Schedulers.newThread())//子线程访问网络
.observeOn(AndroidSchedulers.mainThread()) //回调到主线程
.subscribe(subscriber);
}
//获取服务对象
private static INetService getService() {
if (mService == null) {
mService = RetrofitHelper.getInstance()
.getRetrofit()
.create(INetService.class);
}
return mService;
}
}
/**
* service统一接口数据
*/
public interface INetService {
//express/query?act=5a58ca2893748f3b
/**
* 首页数据
*/
@FormUrlEncoded
@POST(“index)
Observable<Entity> getHomeDataPost(@Field("act") String act);
}
简单的retrofit2—-RxJava—okhttp网络请求