gpt4 book ai didi

android - 如何使用 RxJava 2 + Retrofit 2 进行 POST?

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:53:05 25 4
gpt4 key购买 nike

这个问题听起来很简单,但我很难过。

我可以这样用改造 2 完成帖子:

class RetrofitClient {

private static Retrofit retrofit = null;

static Retrofit getClient(String baseUrl) {
if (retrofit == null) {
retrofit = new Retrofit.Builder()
.baseUrl(baseUrl)
.addCallAdapterFactory(RxJava2CallAdapterFactory.create())
.addConverterFactory(GsonConverterFactory.create())
.build();
}
return retrofit;
}

}

API服务接口(interface):

 @POST("postsInit")
@FormUrlEncoded
Call<InitPost> postInit(
@Field("appVersion") String versionName,
@Field("appId") String applicationId,

);

最后:

apiService.postInit(versionName, applicationId).enqueue(new Callback<InitPost>() {
@Override
public void onResponse(@NonNull Call<InitPost> call, @NonNull Response<InitPost> response) {

if (response.isSuccessful()) {
Timber.d("post submitted to API");
getInitResponse();
}
}

@Override
public void onFailure(@NonNull Call<InitPost> call, @NonNull Throwable t) {

if (call.isCanceled()) {
Timber.e("Request was aborted");
} else {
Timber.e("Unable to submit post to API.");
}

}
});

如何将其转换为 RxJava 2?我已经实现了转换器工厂,但互联网上没有关于同时使用 rxJava 2 和 retrofit 2 的信息。

最佳答案

RxJava 代码中转换你的调用:-

apiService.postInit(versionName, applicationId)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.unsubscribeOn(Schedulers.io())
.subscribe(new Subscriber<InitPost>() {
@Override
public void onSubscribe(Subscription s) {

}

@Override
public void onNext(InitPost initPost) {

}

@Override
public void onError(Throwable t) {

}

@Override
public void onComplete() {

}
});
}

邮政服务接口(interface):

@POST("postsInit")
@FormUrlEncoded
Observable<InitPost> postInit(
@Field("appVersion") String versionName,
@Field("appId") String applicationId,
);

关于android - 如何使用 RxJava 2 + Retrofit 2 进行 POST?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48147900/

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