/** * Optionally overridden by child classes to define service-specific HTTP configuration defaults. */ protected AttributeMap serviceHttpConfig() { return AttributeMap.empty(); }
/** * Optionally overridden by child implementations to provide implementation-specific default HTTP configuration. */ protected AttributeMap childHttpConfig() { return AttributeMap.empty(); }
/** * Use this method if you want to control the way a {@link HttpURLConnection} is created. * This will ignore SDK defaults like {@link SdkHttpConfigurationOption#CONNECTION_TIMEOUT} * and {@link SdkHttpConfigurationOption#READ_TIMEOUT} * @param connectionFactory a function that, given a {@link URI} will create an {@link HttpURLConnection} * @return an {@link UrlConnectionHttpClient} */ public static SdkHttpClient create(UrlConnectionFactory connectionFactory) { return new UrlConnectionHttpClient(AttributeMap.empty(), connectionFactory); }
/** * Create a {@link SdkAsyncHttpClient} with global defaults applied. This is useful for reusing an HTTP client across * multiple services. */ default SdkAsyncHttpClient build() { return buildWithDefaults(AttributeMap.empty()); }
/** * Create a {@link SdkHttpClient} without defaults applied. This is useful for reusing an HTTP client across multiple * services. */ default SdkHttpClient build() { return buildWithDefaults(AttributeMap.empty()); }
/** * Create a {@link SdkAsyncHttpClient} without defaults applied. This is useful for reusing an HTTP client across * multiple services. */ default SdkAsyncHttpClient build() { return buildWithDefaults(AttributeMap.empty()); }
/** * Create a {@link SdkHttpClient} with global defaults applied. This is useful for reusing an HTTP client across multiple * services. */ default SdkHttpClient build() { return buildWithDefaults(AttributeMap.empty()); }
public SdkHttpClient createHttpClient() { return createHttpClientWithDefaults(AttributeMap.empty()); }
@Override protected final AttributeMap serviceHttpConfig() { AttributeMap result = AttributeMap.empty(); return result.merge(AttributeMap.builder().put(SdkHttpConfigurationOption.PROTOCOL, Protocol.HTTP2).build()); } }