簡體   English   中英

使用Apache CXF 3和JAX-RS 2.0添加客戶端代理

[英]Add client proxy with Apache CXF 3 and JAX-RS 2.0

我嘗試將代理添加到我的Apache CXF 3客戶端API。

ClientBuilder.newClient().target(serverUri)
                         .request()
                         .post();

在Jersey實現中,我使用ClientConfig:

ClientConfig config = new ClientConfig();
config.connectorProvider(new ApacheConnectorProvider());
config.property(ClientProperties.PROXY_URI, proxyAddress);
ClientBuilder.newClient(config) ...

我想對CXF 3做同樣的事情,而不使用它們的特定客戶端(我使用JAX-RS客戶端實現),並且不在JVM上設置代理。

任何幫助將不勝感激;)

編輯:

解決方案的開始可以是:

client.property("http.proxy.server.uri", proxyUri); 
client.property("http.proxy.server.port",proxyPort); 

但是我沒有找到代理身份驗證的屬性。

您不使用JAX-RS客戶端,它只是一個接口,請參見JAX-RS API 該實現是Apache CXF客戶端,請參閱JAX-RS 2.0客戶端API

CXF 3.0.0實現了JAX-RS 2.0客戶端API。 在內部,它是根據CXF特定的WebClient實施的。

您可以使用Apache CXF客戶端配置,請參閱Apache CXF API

表示當前代理或WebClient的配置。 給定一個名為“客戶端”的實例,可以使用WebClient.getConfig(client)調用訪問其配置。

例:

Client client = ClientBuilder.newClient();
HTTPConduit conduit = WebClient.getConfig(client).getHttpConduit();

HTTPClientPolicy policy = new HTTPClientPolicy();
policy.setProxyServer("my.proxy.domain");
policy.setProxyServerPort(80);
conduit.setClient(policy);

ProxyAuthorizationPolicy policy = new ProxyAuthorizationPolicy();
policy.setAuthorizationType("Basic");
policy.setUserName(PROXY_USER);
policy.setPassword(PROXY_PWD);
conduit.setProxyAuthorization(policy);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM