Apache HttpAsyncClient的可观察API

15-09-11 banq
                   

这是将Netflix开源Rxjava与Apache的Http异步客户端结合的开源库。

创建一个可观察的请求源:

ObservableHttp.createGet("http://www.wikipedia.com", httpClient).toObservable();
ObservableHttp.createRequest(HttpAsyncMethods.createGet("http://www.wikipedia.com"), httpClient).toObservable();
<p>

下面是一个完整的请求和分析响应的代码,从客户端向服务器发出一个请求,得到响应后,将响应的byte[]转为String数组。

ObservableHttp.createRequest(HttpAsyncMethods.createGet("http://www.wikipedia.com"), client)
        .toObservable()
        .flatMap({ ObservableHttpResponse response ->
                return response.getContent().map({ byte[] bb ->
                        return new String(bb);
                });
        })
        .toBlockingObservable()
        .forEach({ String resp -> 
                // this will be invoked once with the response
                println(resp);
        });
<p>

项目源码见:

ReactiveX/RxApacheHttp · GitHub

                   

lostalien
2015-09-18 19:22

。。。搞成可观察的有啥用。。。 ?

banq
2015-09-19 07:13

2015-09-18 19:22 "@lostalien"的内容
搞成可观察的有啥用 ...

搞成可观察的,就可以随时随地观察,如同你安排了一个间谍在某个组织,你可以随时了解这个组织的情况。

可观察的和Rective是有密切联系的。