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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了RxJava jersey客户端,带有使用WebResourceFactory构建的代理相关的知识,希望对你有一定的参考价值。

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

答案
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);
另一答案

查看版本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代理客户端来帮助管理并发。

以上是关于RxJava jersey客户端,带有使用WebResourceFactory构建的代理的主要内容,如果未能解决你的问题,请参考以下文章

Jersey 2 - 带有 .target HTTPS

带有 Jersey 2 的气氛 PubSub

Bitcoind JSON-RPC:Java Jersey 客户端:来自服务器错误的文件意外结束

带有 Jersey 2.2 和 Jackson 2.1 的自定义 ObjectMapper

返回带有 Jersey 的字符串的 JSON 表示

Java:使用带有 Spring Security 的 Jersey Jax-RS 进行用户身份验证