类org.apache.http.conn.DnsResolver源码实例Demo

下面列出了怎么用org.apache.http.conn.DnsResolver的API类实例代码及写法,或者点击链接到github查看源代码。

源代码1 项目: helios   文件: EndpointsTest.java
@Test
public void testSupplierFactory() throws Exception {
  final DnsResolver resolver = mock(DnsResolver.class);
  when(resolver.resolve("example.com")).thenReturn(IPS_1);
  when(resolver.resolve("example.net")).thenReturn(IPS_2);
  final Supplier<List<URI>> uriSupplier = Suppliers.ofInstance(uris);
  final Supplier<List<Endpoint>> endpointSupplier = Endpoints.of(uriSupplier, resolver);
  final List<Endpoint> endpoints = endpointSupplier.get();

  assertThat(endpoints.size(), equalTo(4));
  assertThat(endpoints.get(0).getUri(), equalTo(uri1));
  assertThat(endpoints.get(0).getIp(), equalTo(IP_A));
  assertThat(endpoints.get(1).getUri(), equalTo(uri1));
  assertThat(endpoints.get(1).getIp(), equalTo(IP_B));
  assertThat(endpoints.get(2).getUri(), equalTo(uri2));
  assertThat(endpoints.get(2).getIp(), equalTo(IP_C));
  assertThat(endpoints.get(3).getUri(), equalTo(uri2));
  assertThat(endpoints.get(3).getIp(), equalTo(IP_D));
}
 
源代码2 项目: helios   文件: EndpointsTest.java
@Test
public void testFactory() throws Exception {
  final DnsResolver resolver = mock(DnsResolver.class);
  when(resolver.resolve("example.com")).thenReturn(IPS_1);
  when(resolver.resolve("example.net")).thenReturn(IPS_2);
  final List<Endpoint> endpoints = Endpoints.of(uris, resolver);

  assertThat(endpoints.size(), equalTo(4));
  assertThat(endpoints.get(0).getUri(), equalTo(uri1));
  assertThat(endpoints.get(0).getIp(), equalTo(IP_A));
  assertThat(endpoints.get(1).getUri(), equalTo(uri1));
  assertThat(endpoints.get(1).getIp(), equalTo(IP_B));
  assertThat(endpoints.get(2).getUri(), equalTo(uri2));
  assertThat(endpoints.get(2).getIp(), equalTo(IP_C));
  assertThat(endpoints.get(3).getUri(), equalTo(uri2));
  assertThat(endpoints.get(3).getIp(), equalTo(IP_D));
}
 
源代码3 项目: vividus   文件: HttpClientConfigTests.java
@Test
void testGetAndSetDnsResolver()
{
    DnsResolver resolver = mock(DnsResolver.class);
    config.setDnsResolver(resolver);
    assertEquals(resolver, config.getDnsResolver());
}
 
源代码4 项目: vividus   文件: HttpClientFactoryTests.java
@Test
public void testBuildDnsResolver()
{
    DnsResolver resolver = mock(DnsResolver.class);
    config.setDnsResolver(resolver);
    testBuildHttpClientUsingConfig();
    verify(mockedHttpClientBuilder).setDnsResolver(resolver);
}
 
源代码5 项目: vividus   文件: HttpClientFactoryTests.java
@Test
public void testBuildHttpClientAllPossible()
{
    String baseUrl = "http://somewh.ere/";
    config.setBaseUrl(baseUrl);
    config.setHeadersMap(HEADERS);
    config.setCredentials(CREDS);
    config.setAuthScope(AUTH_SCOPE);
    config.setSslCertificateCheckEnabled(false);
    config.setSkipResponseEntity(true);
    CookieStore cookieStore = new BasicCookieStore();
    config.setCookieStore(cookieStore);
    config.setSslHostnameVerificationEnabled(false);
    DnsResolver resolver = mock(DnsResolver.class);
    config.setDnsResolver(resolver);

    SSLContext mockedSSLContext = mock(SSLContext.class);
    when(mockedSSLContextManager.getSslContext(SSLConnectionSocketFactory.SSL, true))
            .thenReturn(Optional.of(mockedSSLContext));

    prepareClientBuilderUtilsMock();

    testBuildHttpClientUsingConfig();
    verify(mockedHttpClientBuilder).setSSLHostnameVerifier(NoopHostnameVerifier.INSTANCE);
    verify(mockedHttpClient).setHttpHost(HttpHost.create(baseUrl));
    verify(mockedHttpClient).setSkipResponseEntity(config.isSkipResponseEntity());
    verify(mockedHttpClientBuilder).setSSLContext(mockedSSLContext);
    verify(mockedHttpClientBuilder).setDefaultCredentialsProvider(credentialsProvider);
    verify(mockedHttpClientBuilder).setDefaultCookieStore(cookieStore);
    verify(mockedHttpClientBuilder).setDnsResolver(resolver);
    verifyDefaultHeaderSetting(HEADERS.entrySet().iterator().next());
    PowerMockito.verifyStatic(ClientBuilderUtils.class);
    ClientBuilderUtils.createCredentialsProvider(AUTH_SCOPE, CREDS);
}
 
源代码6 项目: jkube   文件: AbstractNativeClientBuilder.java
private DnsResolver nullDnsResolver() {
    return new DnsResolver() {
        @Override
        public InetAddress[] resolve(final String host) throws UnknownHostException {
            return new InetAddress[] {null};
        }
    };
}
 
源代码7 项目: netcrusher-java   文件: HttpClientTest.java
@Before
public void setUp() throws Exception {
    reactor = new NioReactor();

    crusher = TcpCrusherBuilder.builder()
            .withReactor(reactor)
            .withBindAddress("127.0.0.1", CRUSHER_PORT)
            .withConnectAddress(REMOTE_HOST, REMOTE_PORT)
            .buildAndOpen();

    DnsResolver dnsResolver = new SystemDefaultDnsResolver() {
        @Override
        public InetAddress[] resolve(final String host) throws UnknownHostException {
            if (host.equalsIgnoreCase(REMOTE_HOST)) {
                return new InetAddress[] { InetAddress.getByAddress(new byte[] {127, 0, 0, 1}) };
            } else {
                return super.resolve(host);
            }
        }
    };

    HttpConnectionFactory<HttpRoute, ManagedHttpClientConnection> httpConnectionFactory =
            new ManagedHttpClientConnectionFactory();

    Registry<ConnectionSocketFactory> socketFactoryRegistry = RegistryBuilder.<ConnectionSocketFactory>create()
            .register("http", PlainConnectionSocketFactory.INSTANCE)
            .build();

    PoolingHttpClientConnectionManager connectionManager = new PoolingHttpClientConnectionManager(
            socketFactoryRegistry, httpConnectionFactory, dnsResolver);

    http = HttpClients.createMinimal(connectionManager);
}
 
源代码8 项目: lavaplayer   文件: ExtendedConnectionOperator.java
public ExtendedConnectionOperator(
    Lookup<ConnectionSocketFactory> socketFactoryRegistry,
    SchemePortResolver schemePortResolver,
    DnsResolver dnsResolver
) {
  this.socketFactoryRegistry = socketFactoryRegistry;
  this.schemePortResolver = schemePortResolver != null ? schemePortResolver : DefaultSchemePortResolver.INSTANCE;
  this.dnsResolver = dnsResolver != null ? dnsResolver : SystemDefaultDnsResolver.INSTANCE;
}
 
源代码9 项目: Bastion   文件: TestWithProxiedEmbeddedServer.java
@BeforeClass
public static void setupProxying() {
    DnsResolver dnsResolver = prepareProxiedDnsResolver();
    DefaultSchemePortResolver schemePortResolver = prepareSchemePortResolver();
    BasicHttpClientConnectionManager connManager = prepareConnectionManager(dnsResolver, schemePortResolver);
    HttpClient httpClient = prepareHttpClient(connManager);
    originalHttpClient = (HttpClient) Options.getOption(Option.HTTPCLIENT);
    Unirest.setHttpClient(httpClient);
}
 
源代码10 项目: Bastion   文件: TestWithProxiedEmbeddedServer.java
private static BasicHttpClientConnectionManager prepareConnectionManager(DnsResolver dnsResolver, DefaultSchemePortResolver schemePortResolver) {
    return new BasicHttpClientConnectionManager(
            RegistryBuilder.<ConnectionSocketFactory>create()
                    .register("http", PlainConnectionSocketFactory.getSocketFactory())
                    .register("https", SSLConnectionSocketFactory.getSocketFactory())
                    .build(),
            null,
            schemePortResolver,
            dnsResolver
    );
}
 
源代码11 项目: Bastion   文件: TestWithProxiedEmbeddedServer.java
private static DnsResolver prepareProxiedDnsResolver() {
    return new SystemDefaultDnsResolver() {
        @Override
        public InetAddress[] resolve(String host) throws UnknownHostException {
            if (host.equalsIgnoreCase("sushi-shop.test")) {
                return new InetAddress[]{InetAddress.getByName("127.0.0.1")};
            } else {
                return super.resolve(host);
            }
        }
    };
}
 
源代码12 项目: galaxy-fds-sdk-java   文件: FDSHttpClient.java
public FDSHttpClient(FDSClientConfiguration fdsConfig, GalaxyFDSCredential credential,
    GalaxyFDSClient fdsClient, DnsResolver dnsResolver) {
  this.fdsConfig = fdsConfig;
  this.credential = credential;
  this.dnsResolver = dnsResolver;
  this.fdsClient = fdsClient;
  init();
}
 
源代码13 项目: galaxy-fds-sdk-java   文件: GalaxyFDSClient.java
public GalaxyFDSClient(GalaxyFDSCredential credential, FDSClientConfiguration fdsConfig,
    DnsResolver dnsResolver) {
  this.credential = credential;
  this.fdsConfig = fdsConfig;
  this.dnsResolver = dnsResolver;
  init();
}
 
public TestHttpClientDNSBlackList() {

    super(new BasicFDSCredential("AUTH_AK", "AUTH_SK"), defaultFdsConfig,
        new DnsResolver() {
          @Override
          public InetAddress[] resolve(String host) throws UnknownHostException {
            ++dnsResolvedCnt;
            return localIpAddress;
          }
        });
  }
 
源代码15 项目: helios   文件: Endpoints.java
/**
 * Returns a {@link Supplier} of a list of {@link Endpoint}.
 *
 * @param uriSupplier A Supplier of a list of URIs.
 * @param dnsResolver An instance of {@link DnsResolver}
 *
 * @return A Supplier of a list of Endpoints.
 */
static Supplier<List<Endpoint>> of(final Supplier<List<URI>> uriSupplier,
                                   final DnsResolver dnsResolver) {
  return new Supplier<List<Endpoint>>() {
    @Override
    public List<Endpoint> get() {
      return of(uriSupplier.get(), dnsResolver);
    }
  };
}
 
源代码16 项目: helios   文件: Endpoints.java
/**
 * Returns a list of {@link Endpoint}.
 *
 * @param uris        A list of URIs.
 * @param dnsResolver An instance of {@link DnsResolver}
 *
 * @return A list of Endpoints.
 */
static List<Endpoint> of(final List<URI> uris, final DnsResolver dnsResolver) {
  final ImmutableList.Builder<Endpoint> endpoints = ImmutableList.builder();
  for (final URI uri : uris) {
    try {
      for (final InetAddress ip : dnsResolver.resolve(uri.getHost())) {
        endpoints.add(new DefaultEndpoint(uri, ip));
      }
    } catch (UnknownHostException e) {
      log.warn("Unable to resolve hostname {} into IP address", uri.getHost(), e);
    }
  }

  return endpoints.build();
}
 
源代码17 项目: helios   文件: EndpointsTest.java
@Test
public void testUnableToResolve() throws Exception {
  final DnsResolver resolver = mock(DnsResolver.class);
  when(resolver.resolve("example.com")).thenThrow(new UnknownHostException());
  when(resolver.resolve("example.net")).thenThrow(new UnknownHostException());
  final List<Endpoint> endpoints = Endpoints.of(uris, resolver);

  assertThat(endpoints.size(), equalTo(0));
}
 
源代码18 项目: helios   文件: EndpointsTest.java
@Test
public void testInvalidUri_NoScheme() throws Exception {
  final DnsResolver resolver = mock(DnsResolver.class);
  when(resolver.resolve("example.com")).thenReturn(IPS_1);
  exception.expect(IllegalArgumentException.class);
  Endpoints.of(ImmutableList.of(new URI(null, "example.com", null, null)), resolver);
}
 
源代码19 项目: helios   文件: EndpointsTest.java
@Test
public void testInvalidUri_NoPort() throws Exception {
  final DnsResolver resolver = mock(DnsResolver.class);
  when(resolver.resolve("example.com")).thenReturn(IPS_1);
  exception.expect(IllegalArgumentException.class);
  Endpoints.of(ImmutableList.of(new URI("http", "example.com", null, null)), resolver);
}
 
private  DnsResolver nullDnsResolver() {
    return new DnsResolver() {
        @Override
        public InetAddress[] resolve(final String host) throws UnknownHostException {
            return new InetAddress[] {null};
        }
    };
}
 
源代码21 项目: vividus   文件: HttpClientConfig.java
public DnsResolver getDnsResolver()
{
    return dnsResolver;
}
 
源代码22 项目: vividus   文件: HttpClientConfig.java
public void setDnsResolver(DnsResolver dnsResolver)
{
    this.dnsResolver = dnsResolver;
}
 
源代码23 项目: vividus   文件: LocalDnsResolver.java
public void setFallbackDnsResolver(DnsResolver fallbackDnsResolver)
{
    this.fallbackDnsResolver = fallbackDnsResolver;
}
 
public DnsResolver getDnsResover() {
  return dnsResover;
}
 
public void setDnsResover(DnsResolver dnsResover) {
  this.dnsResover = dnsResover;
}
 
源代码26 项目: ibm-cos-sdk-java   文件: DelegatingDnsResolver.java
public DelegatingDnsResolver(com.ibm.cloud.objectstorage.DnsResolver delegate) {
    this.delegate = delegate;
}
 
源代码27 项目: BUbiNG   文件: FetchingThread.java
public BasicHttpClientConnectionManagerWithAlternateDNS(final DnsResolver dnsResolver) {
	super(getDefaultRegistry(), null, null, dnsResolver);
}
 
源代码28 项目: spring-boot-cookbook   文件: RestTemplateConfig.java
private CloseableHttpClient getHttpClient() {
        //注册访问协议相关的Socket工厂
        Registry<ConnectionSocketFactory> socketFactoryRegistry = RegistryBuilder.<ConnectionSocketFactory>create()
                .register("http", PlainConnectionSocketFactory.INSTANCE)
                .register("https", SSLConnectionSocketFactory.getSocketFactory())
                .build();

        //HttpConnectionFactory:配置写请求/解析响应处理器
        HttpConnectionFactory<HttpRoute, ManagedHttpClientConnection> connectionFactory = new ManagedHttpClientConnectionFactory(
                DefaultHttpRequestWriterFactory.INSTANCE,
                DefaultHttpResponseParserFactory.INSTANCE
        );

        //DNS解析器
        DnsResolver dnsResolver = SystemDefaultDnsResolver.INSTANCE;
        //创建连接池管理器
        PoolingHttpClientConnectionManager manager = new PoolingHttpClientConnectionManager(socketFactoryRegistry, connectionFactory, dnsResolver);
        //设置默认的socket参数
        manager.setDefaultSocketConfig(SocketConfig.custom().setTcpNoDelay(true).build());
        manager.setMaxTotal(300);//设置最大连接数。高于这个值时,新连接请求,需要阻塞,排队等待
        //路由是对MaxTotal的细分。
        // 每个路由实际最大连接数默认值是由DefaultMaxPerRoute控制。
        // MaxPerRoute设置的过小,无法支持大并发:ConnectionPoolTimeoutException:Timeout waiting for connection from pool
        manager.setDefaultMaxPerRoute(200);//每个路由的最大连接
        manager.setValidateAfterInactivity(5 * 1000);//在从连接池获取连接时,连接不活跃多长时间后需要进行一次验证,默认为2s

        //配置默认的请求参数
        RequestConfig defaultRequestConfig = RequestConfig.custom()
                .setConnectTimeout(2 * 1000)//连接超时设置为2s
                .setSocketTimeout(5 * 1000)//等待数据超时设置为5s
                .setConnectionRequestTimeout(2 * 1000)//从连接池获取连接的等待超时时间设置为2s
//                .setProxy(new Proxy(Proxy.Type.HTTP, new InetSocketAddress("192.168.0.2", 1234))) //设置代理
                .build();

        CloseableHttpClient closeableHttpClient = HttpClients.custom()
                .setConnectionManager(manager)
                .setConnectionManagerShared(false)//连接池不是共享模式,这个共享是指与其它httpClient是否共享
                .evictIdleConnections(60, TimeUnit.SECONDS)//定期回收空闲连接
                .evictExpiredConnections()//回收过期连接
                .setConnectionTimeToLive(60, TimeUnit.SECONDS)//连接存活时间,如果不设置,则根据长连接信息决定
                .setDefaultRequestConfig(defaultRequestConfig)//设置默认的请求参数
                .setConnectionReuseStrategy(DefaultConnectionReuseStrategy.INSTANCE)//连接重用策略,即是否能keepAlive
                .setKeepAliveStrategy(DefaultConnectionKeepAliveStrategy.INSTANCE)//长连接配置,即获取长连接生产多长时间
                .setRetryHandler(new DefaultHttpRequestRetryHandler(0, false))//设置重试次数,默认为3次;当前是禁用掉
                .build();

        /**
         *JVM停止或重启时,关闭连接池释放掉连接
         */
        Runtime.getRuntime().addShutdownHook(new Thread() {
            @Override
            public void run() {
                try {
                    closeableHttpClient.close();
                    log.info("http client closed");
                } catch (IOException e) {
                    log.error(e.getMessage(), e);
                }
            }
        });
        return closeableHttpClient;
    }
 
源代码29 项目: spring-boot-cookbook   文件: RestTemplateConfig.java
private CloseableHttpClient getHttpClient() {
        //注册访问协议相关的Socket工厂
        Registry<ConnectionSocketFactory> socketFactoryRegistry = RegistryBuilder.<ConnectionSocketFactory>create()
                .register("http", PlainConnectionSocketFactory.INSTANCE)
                .register("https", SSLConnectionSocketFactory.getSocketFactory())
                .build();

        //HttpConnectionFactory:配置写请求/解析响应处理器
        HttpConnectionFactory<HttpRoute, ManagedHttpClientConnection> connectionFactory = new ManagedHttpClientConnectionFactory(
                DefaultHttpRequestWriterFactory.INSTANCE,
                DefaultHttpResponseParserFactory.INSTANCE
        );

        //DNS解析器
        DnsResolver dnsResolver = SystemDefaultDnsResolver.INSTANCE;
        //创建连接池管理器
        PoolingHttpClientConnectionManager manager = new PoolingHttpClientConnectionManager(socketFactoryRegistry, connectionFactory, dnsResolver);
        //设置默认的socket参数
        manager.setDefaultSocketConfig(SocketConfig.custom().setTcpNoDelay(true).build());
        manager.setMaxTotal(300);//设置最大连接数。高于这个值时,新连接请求,需要阻塞,排队等待
        //路由是对MaxTotal的细分。
        // 每个路由实际最大连接数默认值是由DefaultMaxPerRoute控制。
        // MaxPerRoute设置的过小,无法支持大并发:ConnectionPoolTimeoutException:Timeout waiting for connection from pool
        manager.setDefaultMaxPerRoute(200);//每个路由的最大连接
        manager.setValidateAfterInactivity(5 * 1000);//在从连接池获取连接时,连接不活跃多长时间后需要进行一次验证,默认为2s

        //配置默认的请求参数
        RequestConfig defaultRequestConfig = RequestConfig.custom()
                .setConnectTimeout(2 * 1000)//连接超时设置为2s
                .setSocketTimeout(5 * 1000)//等待数据超时设置为5s
                .setConnectionRequestTimeout(2 * 1000)//从连接池获取连接的等待超时时间设置为2s
//                .setProxy(new Proxy(Proxy.Type.HTTP, new InetSocketAddress("192.168.0.2", 1234))) //设置代理
                .build();

        CloseableHttpClient closeableHttpClient = HttpClients.custom()
                .setConnectionManager(manager)
                .setConnectionManagerShared(false)//连接池不是共享模式,这个共享是指与其它httpClient是否共享
                .evictIdleConnections(60, TimeUnit.SECONDS)//定期回收空闲连接
                .evictExpiredConnections()//回收过期连接
                .setConnectionTimeToLive(60, TimeUnit.SECONDS)//连接存活时间,如果不设置,则根据长连接信息决定
                .setDefaultRequestConfig(defaultRequestConfig)//设置默认的请求参数
                .setConnectionReuseStrategy(DefaultConnectionReuseStrategy.INSTANCE)//连接重用策略,即是否能keepAlive
                .setKeepAliveStrategy(DefaultConnectionKeepAliveStrategy.INSTANCE)//长连接配置,即获取长连接生产多长时间
                .setRetryHandler(new DefaultHttpRequestRetryHandler(0, false))//设置重试次数,默认为3次;当前是禁用掉
                .build();

        /**
         *JVM停止或重启时,关闭连接池释放掉连接
         */
        Runtime.getRuntime().addShutdownHook(new Thread() {
            @Override
            public void run() {
                try {
                    LOGGER.info("closing http client");
                    closeableHttpClient.close();
                    LOGGER.info("http client closed");
                } catch (IOException e) {
                    LOGGER.error(e.getMessage(), e);
                }
            }
        });
        return closeableHttpClient;
    }
 
public InternalSiteBlackListDNSResolver(IPAddressBlackList blackList,
    DnsResolver dnsResolver) {
  this.blackList = blackList;
  this.dnsResolver = dnsResolver;
}
 
 类所在包
 类方法
 同包方法