![](/img/trans.png)
[英]Getting hostname of the client that is calling my JAX-RS rest webservice
[英]Custom hostname resolver for JAX-RS client
有沒有辦法在JAX-RS客戶端內自定義主機名解析?
我正在使用javax.ws.rs.client.ClientBuilder
創建一個客戶端,我希望例如https://mytestinghost.tech
將mytestinghost.tech
解析為我可以定義的IP; 例如1.2.3.4
。
我要么使用默認連接器或Jetty HTTP(2)連接器 。
使用以下代碼檢索客戶端。
ClientBuilder.newBuilder()
.trustStore(clientCertificateProvider.getCertificate())
.withConfig(new ClientConfig().connectorProvider(JettyHttp2Connector::new))
我設法通過配置HttpClient
的底層SocketAddressResolver
強制解析。
ClientBuilder.newBuilder()
.register(new JacksonJsonProvider())
.trustStore(HttpUtility.trustStore())
.withConfig(new ClientConfig().connectorProvider((jaxrsClient, config1) -> {
final JettyHttp2Connector jettyHttp2Connector = new JettyHttp2Connector(jaxrsClient, config1);
jettyHttp2Connector.getHttpClient().setSocketAddressResolver((s, i, promise) -> {
try {
final List<InetSocketAddress> result = Collections.singletonList(new InetSocketAddress(InetAddress.getByName("1.2.3.4"), managementPort));
promise.succeeded(result);
} catch (UnknownHostException e) {
throw new IllegalStateException(e);
}
});
return jettyHttp2Connector;
}))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.