JAX-RS 客户端的自定义主机名解析器
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) connector。
使用以下代码检索客户端。
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;
}))
有没有办法在 JAX-RS 客户端中自定义主机名解析?
我正在使用 javax.ws.rs.client.ClientBuilder
创建一个客户端,我希望 https://mytestinghost.tech
将 mytestinghost.tech
解析为我可以定义的 IP;例如1.2.3.4
.
我正在使用默认连接器或 Jetty HTTP(2) connector。
使用以下代码检索客户端。
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;
}))