gpt4 book ai didi

android - RxJava2 with retrofit 2 for Api call

转载 作者:搜寻专家 更新时间:2023-11-01 08:30:44 25 4
gpt4 key购买 nike

在 RxJava 1 中,我正在做这样的事情

  private void doLogin() {

final ProjectApi service = RetrofitService.createRetrofitClient();
staticsubscription = service.service.getLogin(new PostLoginPojo("","", new Mobsess("","","","","")))
.subscribeOn(Schedulers.newThread())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(staticObserver);

}
Observer<ApiLogin> getLoginObserver = new Observer<ApiLogin>() {

@Override
public void onCompleted() {
staticsubscription.unsubscribe();
}

@Override
public void onError(Throwable e) {
// Called when the observable encounters an error
// Log.d(TAG, ">>>> onError gets called : " + e.getMessage());
}

@Override
public void onNext(ApiLogin staticData) {


}
};

现在使用 RxJava 2我正在尝试像这样转换它
编辑:-

private void doLogin(){

final ProjectApi service = RetrofitService.createRetrofitClient();
Disposable disposable = service.getLogin(new PostLoginPojo("","", new Mobsess("","","","","")))
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(getLoginObserver());

}

public DisposableObserver<ApiLogin> getLoginObserver() {
return new DisposableObserver<ApiLogin>() {
@Override
public void onNext(ApiLogin value) {

}

@Override
public void onError(Throwable e) {

}

@Override
public void onComplete() {

}
};
}

这是我的项目API

public interface ProjectApi {
String login = "customer/validate";

@POST(login)
Observable<ApiLogin> getLogin(@Body PostLoginPojo post);
}

这是改造服务:-

public class RetrofitService {
private final static String API_URL = AppUrl.baseUrl ;
public RetrofitService(){
}
public static ProjectApi createRetrofitClient() {
HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor();
interceptor.setLevel(HttpLoggingInterceptor.Level.BODY);
OkHttpClient client = new OkHttpClient.Builder().
addInterceptor(interceptor).build();

Retrofit retrofit = new Retrofit.Builder()
.baseUrl(API_URL)
.addConverterFactory(GsonConverterFactory.create())
.addCallAdapterFactory(RxJava2CallAdapterFactory.create())
.client(client)
.build();


return retrofit.create(ProjectApi.class);
}
}

错误:不兼容的类型:void 无法转换为 Disposable

我收到错误“类型不兼容”在 .subscribe(getLoginObserver()),

要求“io.reacivex.disposbles.Disposable”找到“Void”

我在这里做错了什么?谢谢

最佳答案

subscribe返回 void现在,

public Observer<ApiLogin> getLoginObserver() 

应该返回 DisposableObserver<ApiLogin>然后你应该可以使用

subscribeWith(getLoginObserver());

关于android - RxJava2 with retrofit 2 for Api call,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41117316/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com