使用Retrofit封装网络请求,使用Rxjava处理发起请求以及接下来处理结果的流程。
定义网络请求接口
public interface RetrofitService {
@GET("query")
Call<PostInfo> getPostInfo(@Query("type") String type, @Query("postid") String postid);
}
初始化Retrofit
Retrofit retrofit = new Retrofit.Builder()
.baseUrl("http://www.kuaidi100.com/")
.addConverterFactory(GsonConverterFactory.create())//使用gson
.addCallAdapterFactory(RxJavaCallAdapterFactory.create())//支持RxJava
.build();
获取观察者
RetrofitService service = retrofit.create(RetrofitService.class);
Observable<PostInfo> observable = service.getPostInfoRx("yuantong", "111");在这里插入代码片
observable.subscribeOn(Schedulers.io()) // 在子线程中进行Http访问
.observeOn(AndroidSchedulers.mainThread()) // UI线程处理返回接口
.subscribe(new Observer<PostInfo>() { // 订阅
@Override
public void onCompleted() {
}
@Override
public void onError(Throwable e) {
}
@Override
public void onNext(PostInfo postInfo) {
}
});