when I used "observable.subscribe(subscriber);", it show can't resolve method 'subscribe (org.reactivestreams.Subscribe<>). But when I used "observable.subscribe(observable);", it is right. My code is as follows:
Map<String, String> paramMap = new HashMap<>();
paramMap.put("user_name", "guojinjin");
paramMap.put("user_password", "1");
paramMap.put("user_language", "ZHS");
paramMap.put("is_ipad", "N");
paramMap.put("is_mobile", "Y");
Retrofit retrofit= new Retrofit.Builder()
.baseUrl("http://211.149.247.188/")
//增加返回值为String的支持
.addConverterFactory(ScalarsConverterFactory.create())
//增加返回值为Gson的支持(以实体类返回)
.addConverterFactory(GsonConverterFactory.create())
//增加返回值为Oservable<T>的支持
.addCallAdapterFactory(RxJava2CallAdapterFactory.create())
.build();
TestService testService = retrofit.create(TestService.class);
Observable<TestModel> observable = testService.getTestModel(paramMap);
Subscriber<TestModel> subscriber = new Subscriber<TestModel>() {
@Override
public void onSubscribe(Subscription s) {
}
@Override
public void onNext(TestModel course) {
Log.d("onNext", course.getEncryted_session_id());
}
@Override
public void onError(Throwable t) {
}
@Override
public void onComplete() {
}
};
observable.subscribeOn(Schedulers.newThread()).subscribe(subscriber);
Observer observer = new Observer<TestModel>() {
@Override
public void onSubscribe(@NonNull Disposable d) {
Log.i("onSubscribe", "onSubscribe");
}
@Override
public void onNext(TestModel testModel) { // 上面 subscriber.onNext(result)在这里回调
Log.i("onNext", testModel.getEncryted_session_id()+testModel.isSuccess());
}
@Override
public void onError(Throwable e) {
Log.i("onError", e.toString());
e.printStackTrace();
} // 上面subscriber.onError(new Throwable(msg))在这里回调
@Override
public void onComplete() {
Log.i("onComplete", "onComplete");
}
};
observable.subscribeOn(Schedulers.newThread()).subscribe(observer);
when I used "observable.subscribe(subscriber);", it show can't resolve method 'subscribe (org.reactivestreams.Subscribe<>). But when I used "observable.subscribe(observable);", it is right. My code is as follows:
Map<String, String> paramMap = new HashMap<>(); paramMap.put("user_name", "guojinjin"); paramMap.put("user_password", "1"); paramMap.put("user_language", "ZHS"); paramMap.put("is_ipad", "N"); paramMap.put("is_mobile", "Y"); Retrofit retrofit= new Retrofit.Builder() .baseUrl("http://211.149.247.188/") //增加返回值为String的支持 .addConverterFactory(ScalarsConverterFactory.create()) //增加返回值为Gson的支持(以实体类返回) .addConverterFactory(GsonConverterFactory.create()) //增加返回值为Oservable<T>的支持 .addCallAdapterFactory(RxJava2CallAdapterFactory.create()) .build(); TestService testService = retrofit.create(TestService.class); Observable<TestModel> observable = testService.getTestModel(paramMap); Subscriber<TestModel> subscriber = new Subscriber<TestModel>() { @Override public void onSubscribe(Subscription s) { } @Override public void onNext(TestModel course) { Log.d("onNext", course.getEncryted_session_id()); } @Override public void onError(Throwable t) { } @Override public void onComplete() { } }; observable.subscribeOn(Schedulers.newThread()).subscribe(subscriber); Observer observer = new Observer<TestModel>() { @Override public void onSubscribe(@NonNull Disposable d) { Log.i("onSubscribe", "onSubscribe"); } @Override public void onNext(TestModel testModel) { // 上面 subscriber.onNext(result)在这里回调 Log.i("onNext", testModel.getEncryted_session_id()+testModel.isSuccess()); } @Override public void onError(Throwable e) { Log.i("onError", e.toString()); e.printStackTrace(); } // 上面subscriber.onError(new Throwable(msg))在这里回调 @Override public void onComplete() { Log.i("onComplete", "onComplete"); } }; observable.subscribeOn(Schedulers.newThread()).subscribe(observer);