【发布时间】:2017-09-26 17:02:32
【问题描述】:
我将 Retrofit 与 Rx java 一起使用,并且我在 onNext 中获取身份验证令牌的值。根据 onNext 的结果,我必须通过在自定义标头中添加令牌来将数据发布到服务器。我应该将所有代码都写在 on next 中吗?有什么方法可以从 onNext 返回一个值,所以当值可用时?
public String getToken() {
Retrofit retrofit = new Retrofit.Builder()
.baseUrl("https://abc.efg.com/")
.addConverterFactory(ScalarsConverterFactory.create())
.addCallAdapterFactory(RxJavaCallAdapterFactory.create())
.build();
GetTokenInterface service = retrofit.create(GetTokenInterface.class);
Observable<String> response_call = service.getToken1(setAPI_KEY, setaccesstoken);
response_call.subscribeOn(Schedulers.newThread())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Subscriber<String>() {
@Override
public void onCompleted() {
System.out.print("Complete");
}
@Override
public void onError(Throwable e) {
System.out.print("Fail");
}
@Override
public void onNext(String token) {
authentication_token = token; //getting correct value here
}
});
return authentication_token;
}
}
然后在另一个班级:
generated_token = getToken();
但是由于值不可用,我得到了 generate_token null 有没有办法在其中获取值?我必须使用这个值来发布,还是需要在 onNext() 中合并 post observable?
【问题讨论】:
标签: android retrofit rx-android