RxJava jersey客户端,带有使用WebResourceFactory构建的代理

时间:2016-11-04 22:39:45

标签: java jersey rx-java jersey-client

有没有人知道如何使用客户端代理构建反应式rx java客户端?官方文档:https://jersey.java.net/documentation/2.23.2/rx-client.html仅提供了从WebTarget或客户端手动构建rxclient的示例,这非常麻烦(假设在循环中添加查询参数),尤其是在您已经创建了资源接口的情况下。只是将RxWebTarget传递给WebResourceFactory不起作用。

2 个答案:

答案 0 :(得分:0)

ClientConfig config = new ClientConfig();
config.connectorProvider(new ApacheConnectorProvider());
config.property(ClientProperties.PROXY_URI, "xxxx:xxxx");
Client client = JerseyClientBuilder.newClient(config);

return RxObservable.from(client).register(loggingFilter);

答案 1 :(得分:0)

查看2.26版WebResourceFactory源代码,WebResourceFactory创建的Jersey代理客户端与反应式客户端编码不兼容。这两行代码通过线路调用调用,而不会引起引发反应式的rx()调用:

            result = builder.method(httpMethod, Entity.entity(entity, contentType), responseGenericType);
        } else {
            result = builder.method(httpMethod, responseGenericType);

您可以考虑添加该功能,因为WebResourceFactory类不是非常大或复杂。

Jersey 2.26引入了为您的JerseyClient实例分配ExecutorService的功能,然后您可以通过从Callable<>内调用您的Jersey代理客户端来帮助管理并发性。后代。