簡體   English   中英

JAX-RS客戶端的自定義主機名解析程序

[英]Custom hostname resolver for JAX-RS client

有沒有辦法在JAX-RS客戶端內自定義主機名解析?

我正在使用javax.ws.rs.client.ClientBuilder創建一個客戶端,我希望例如https://mytestinghost.techmytestinghost.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.

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