Ich versuche, eine Netzwerkanforderung an eine API mit Retrofit zu senden, und wenn ich zurück Antwort, verwenden Sie einen Teil dieser Antwort in einem anderen Anruf, ich verwendete Anruf und RXJAVA als vorgeschlagen, aber ich die zweite Anfrage vor dem erstenNachrüstung von 2 sequentiellen Anfragen mit asynchronen Netzwerkanrufen mit Wiederholung
public interface ChannelRequest {
@POST("authenticate_with_options")
@FormUrlEncoded
Observable<Channel> getAuthenticationChannel(@FieldMap Map<String, String> params);
@POST("check")
@FormUrlEncoded
Observable<Channel> getAuthenticationStatus(@FieldMap Map<String, String> params);
}
ss
Observable<Channel> call2 = mAPI.gettheChannel().getAuthenticationStatus(Constants.HTTP.PARAMSAUTH);
Observable.interval(3, TimeUnit.SECONDS).retry(3);
Subscription subscription2 = call2
.subscribeOn(Schedulers.io()) // optional if you do not wish to override the default behavior
.observeOn(AndroidSchedulers.mainThread()).subscribe(new Subscriber<Channel>() {
@Override
public void onCompleted() {
}
@Override
public void onError(Throwable e) {
if (e instanceof HttpException) {
HttpException response = (HttpException) e;
int code = response.code();
}
}
@Override
public void onNext(Channel channel) {
Log.d("AuthStatus", "onResponse: " + Channel.getChannel());
}
});
ich bin nicht sicher, ob ich RxJava verwenden müssen mehr ausgeführt immer haben, was die beste Praxis dies zu erreichen wäre ?
Dank
Ich tat dies die unten, würde es funktionieren? '.flatMap (neu Func1>() { @Override öffentlich beobachtbare call (AccepttoChannel accepttoChannel) {// String Token = ... // TODO Extrakt Token. Constants.HTTP.PARAMSAUTH.put ("Kanal", accepttoChannel.getChannel()); return mAPI.getAccepttoChannel() getAuthenticationChannel (Constants.HTTP.PARAMSAUTH). } }) ' –