gpt4 book ai didi

android - Retrofit 2 如何同时调用多个请求

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

我有两个不同的 REST 方法,我想同时调用它们。我如何在 Retrofit 2 中执行此操作?

我当然可以一一调用它们,但是在改造中有什么建议的方法吗?

我希望是这样的:

Call<...> call1 = myService.getCall1();
Call<...> call2 = myService.getCall2();

MagicRetrofit.call (call1,call2,new Callback(...) {...} ); // and this calls them at the same time, but give me result with one method

最佳答案

我会看一下将 RxJava 与 Retrofit 结合使用。我喜欢 Zip功能,but there's a ton of others .下面是一个使用 Java 8 的 Zip 示例:

odds  = Observable.from([1, 3, 5, 7, 9]);
evens = Observable.from([2, 4, 6]);

Observable.zip(odds, evens, {o, e -> [o, e]}).subscribe(
{ println(it); }, // onNext
{ println("Error: " + it.getMessage()); }, // onError
{ println("Sequence complete"); } // onCompleted
);

结果

[1, 2]
[3, 4]
[5, 6]
Sequence complete

改造应该不会更困难。

您的 Retrofit 服务对象应该返回 Observable<...>Observable<Result<...>>如果你想要状态代码。

然后你会调用:

Observable.zip(
getMyRetrofitService().getCall1(),
getMyRetrofitService().getCall2(),
(result1, result2) -> return [result1,result2])
.subscribe(combinedResults -> //Combined! Do something fancy here.)

关于android - Retrofit 2 如何同时调用多个请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35827090/

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