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构建的代理的主要内容,如果未能解决你的问题,请参考以下文章
Bitcoind JSON-RPC:Java Jersey 客户端:来自服务器错误的文件意外结束