HTTP client implementation using Java's URLConnection for the AWS SDK for Java 2.0
npx @tessl/cli install tessl/maven-software-amazon-awssdk--url-connection-client@2.33.0The AWS SDK Java URL Connection HTTP Client provides a synchronous HTTP client implementation using Java's built-in URLConnection class. This is the leanest synchronous client that optimizes for minimum dependencies and startup latency, making it ideal for simple applications, testing environments, or when you need to avoid additional HTTP client dependencies.
pom.xml:<dependency>
<groupId>software.amazon.awssdk</groupId>
<artifactId>url-connection-client</artifactId>
<version>2.33.4</version>
</dependency>Or for Gradle build.gradle:
implementation 'software.amazon.awssdk:url-connection-client:2.33.4'import software.amazon.awssdk.http.urlconnection.UrlConnectionHttpClient;
import software.amazon.awssdk.http.urlconnection.ProxyConfiguration;
import software.amazon.awssdk.http.urlconnection.UrlConnectionFactory;
import software.amazon.awssdk.http.urlconnection.UrlConnectionSdkHttpService;
import software.amazon.awssdk.http.SdkHttpClient;import software.amazon.awssdk.http.urlconnection.UrlConnectionHttpClient;
import software.amazon.awssdk.http.SdkHttpClient;
import java.time.Duration;
// Create a basic HTTP client with default settings
SdkHttpClient httpClient = UrlConnectionHttpClient.create();
// Create a configured HTTP client
SdkHttpClient configuredClient = UrlConnectionHttpClient.builder()
.connectionTimeout(Duration.ofSeconds(10))
.socketTimeout(Duration.ofSeconds(30))
.build();
// Use with AWS SDK services (the HTTP client is typically used internally by AWS service clients)
// Example:
// S3Client s3 = S3Client.builder()
// .httpClient(httpClient)
// .build();The URL Connection HTTP Client is designed as a pluggable HTTP transport for the AWS SDK, implementing the standard SdkHttpClient interface. Key components:
HttpURLConnectionCreate HTTP client instances with various configurations.
// Static factory methods
public static SdkHttpClient create();
public static SdkHttpClient create(UrlConnectionFactory connectionFactory);
public static Builder builder();Configure HTTP proxy settings with authentication and bypass rules.
public final class ProxyConfiguration {
public static Builder builder();
public String host();
public int port();
public String scheme();
public String username();
public String password();
public Set<String> nonProxyHosts();
}Auto-discovery through Java ServiceLoader mechanism for AWS SDK integration.
public class UrlConnectionSdkHttpService implements SdkHttpService {
public SdkHttpClient.Builder createHttpClientBuilder();
}// Main HTTP client interface (from AWS SDK Core)
public interface SdkHttpClient extends Closeable {
ExecutableHttpRequest prepareRequest(HttpExecuteRequest request);
String clientName();
void close();
interface Builder<B extends Builder<B>> {
SdkHttpClient buildWithDefaults(AttributeMap serviceDefaults);
}
}
// Connection factory interface for custom connection creation
@FunctionalInterface
public interface UrlConnectionFactory {
HttpURLConnection createConnection(URI uri);
}
// Service discovery interface
public interface SdkHttpService {
SdkHttpClient.Builder createHttpClientBuilder();
}