Using RxJava and Okhttp

前端 未结 5 1901
情书的邮戳
情书的邮戳 2020-12-14 17:15

I want to request to a url using okhttp in another thread (like IO thread) and get Response in the Android main thread, But I don\'t know how to create an

5条回答
  •  北荒
    北荒 (楼主)
    2020-12-14 17:26

    Okhttp3 with RxSingle background API call.

         Disposable disposables = Single.fromCallable(() -> {
            Log.e(TAG, "clearData: Thread[" + Thread.currentThread().getName() + "]");
            OkHttpClient client = Util.getHttpClient();
            Request request = new Request.Builder()
                    .addHeader("Authorization", "Bearer " + Util.getUserToken())
                    .url(BuildConfig.BASE_URL + ApiConstants.DELETE_FEEDS)
                    .build();
    
            Response response = client.newCall(request).execute();
            if(response.isSuccessful()) {
               ...
               return ; // Any  type
            } else {
               return ; // Any type        
            }
        }).subscribeOn(Schedulers.io())
          .observeOn(AndroidSchedulers.mainThread())
          .subscribe((result) -> {
               Log.d(TAG, "api() completed");
          });
    
    
        compositeDisposable.add(disposables);
    

提交回复
热议问题