Retrofit + RxJava

hzqaqz發表於2020-12-24

使用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())
        .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) {
                Log.i("http返回:", postInfo.toString() + "");
            }
        });

相關文章