我尝试在RxJava中使用Reformation2,但我是RxJava&改装。
我有一个类似的api:
@POST("donSomething")
Observable<RespData> doSomeThing(@Body ReqData reqData);
它可能同时被调用多次。
如果我同时多次调用doSomeThing
,将创建多少个http请求?
如果我只想让它创建一个Http请求(使用RxJava),该怎么办?
每次订阅Observable
时,将执行一个http调用。
例如:
// nothing will happens, you haven't subscribe to your observable
yourservice.doSomething(request);
如果您订阅了Observable
,那么改装将执行http调用:
// one http call will be performed as soon as the subscribe method is call on your Observable
yourservice.doSomething(request).subscribe();
每次订阅时将执行一个http调用:
// do nothing (in term of http call)
Observable<RespData> obs = yourservice.doSomething(request);
// first call
obs.subscribe();
// second call
obs.subscribe();
如果要执行一个http调用而不是多个http调用,则可能需要执行网络调用折叠。如果是这样的话,你可以看看Hystrix的表现:https://github.com/Netflix/Hystrix/wiki/How-it-Works#RequestCollapsing