Android 将响应返回为可流动时,未调用onComplete

Android 将响应返回为可流动时,未调用onComplete,android,rx-java,retrofit2,rx-java2,Android,Rx Java,Retrofit2,Rx Java2,我正在尝试使用改型和RxJava2进行WebService调用。我正在探索使用RxJava2的两种不同方法。问题是,当我使用可观察的时,我得到了响应,但它不使用可流动的。使用Flowable时未打印日志我试图调试它,但它没有进入onNext或onComplete或onError。仅执行订阅上的onSubscribe 1) 使用可观察作为返回类型 new WebRequestManager().getContactObservable(userRequest) .subscribe(

我正在尝试使用改型和RxJava2进行WebService调用。我正在探索使用RxJava2的两种不同方法。问题是,当我使用
可观察的
时,我得到了响应,但它不使用
可流动的
。使用
Flowable
时未打印日志我试图调试它,但它没有进入
onNext
onComplete
onError
。仅执行订阅上的
onSubscribe

1) 使用可观察作为返回类型

new WebRequestManager().getContactObservable(userRequest)   
    .subscribe(new Observer<ResponseData>() {
                   @Override
                   public void onSubscribe(Disposable d) {

                   }

                   @Override
                   public void onNext(ResponseData responseData) {

                       Log.e(TAG , "data "+responseData.getStatus());
                   }

                   @Override
                   public void onError(Throwable e) {

                   }

                   @Override
                   public void onComplete() {

                       Log.e(TAG , "data complete");

                   }
               }
    );
new WebRequestManager().getContactFlowable(userRequest)

 .subscribe(new Subscriber<ResponseData>() {
     @Override
     public void onSubscribe(Subscription s) {

         Log.e(TAG , "contact subscription ");

     }

     @Override
     public void onNext(ResponseData responses) {

         Log.e(TAG , "contact onNext ");


     }

     @Override
     public void onError(Throwable t) {

     }

     @Override
     public void onComplete() {

         Log.e(TAG , "contact onComplete ");
     }
 });

使用
Subscriber
s,您必须呼叫
request
以获取项目:

new WebRequestManager().getContactFlowable(userRequest)
.subscribe(新订户(){
@凌驾
认购的公共无效(认购){
Log.e(标签“联系人订阅”);

s、 request(Long.MAX_VALUE);//请参阅和。您能提供一些相关示例,说明如何与publisher一起使用flowable吗?这很有效!!!您是RxJava的专家,看到您的个人资料后,您能帮助我提高RxJava的技能吗..路线图或其他阅读资料。
public interface ContactApi {

    @POST(WebRequest.GET_CONTACTS)
    Flowable<ResponseData> getContactFlowable(@Body UserRequest userRequest);

    @POST(WebRequest.GET_CONTACTS)
    Observable<ResponseData> getContactObservable(@Body UserRequest userRequest);

}
public Flowable<ResponseData> getContactsData(UserRequest userRequest){
        return webRequest.getWebClient().create(ContactApi.class).getContacts(userRequest);


    }

    public Observable<ResponseData> getContact(UserRequest userRequest){
        return webRequest.getWebClient().create(ContactApi.class).getContact(userRequest);

    }
 public static Retrofit getWebClient(){

        //if(okHttpClient == null)
            okHttpClient = new OkHttpClient.Builder()
                                    .connectTimeout(120,TimeUnit.SECONDS)
                                    .readTimeout(120,TimeUnit.SECONDS)
                                    .writeTimeout(120,TimeUnit.SECONDS)

                                    .addInterceptor(new WebRequestInterceptor("\"application/json\""))
                                    .build();


      // if(client == null)
        client = new  Retrofit.Builder()
                .baseUrl(BASE_URL)
                .client(okHttpClient)
                .addConverterFactory(LoganSquareConverterFactory.create())
                .addCallAdapterFactory(RxJava2CallAdapterFactory.create())
                .build();

        return client;
    }