Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Configurar el cliente HTTP basado en Apache 5.x
Acceda al Apache5 HttpClient
Para poder utilizar el, Apache5HttpClient debe agregar una dependencia apache5-client y configurarlo explícitamente Apache5HttpClient en sus clientes de servicio.
<dependencyManagement> <dependencies> <dependency> <groupId>software.amazon.awssdk</groupId> <artifactId>bom</artifactId> <version>2.41.0*</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <dependencies> <dependency> <groupId>software.amazon.awssdk</groupId> <artifactId>s3</artifactId> </dependency> <dependency> <groupId>software.amazon.awssdk</groupId> <artifactId>apache5-client</artifactId> </dependency> </dependencies>
*Reemplace la versión que se muestra en rojo por la versión del SDK de Java que desee utilizar. Busque las últimas novedades sobre Maven Central
Utilizar y configurar el Apache5HttpClient
Puede configurar una instancia del Apache5HttpClient junto con la creación de un cliente de servicio, o configurar una sola instancia para compartirla entre varios clientes de servicio.
Con cualquiera de los dos enfoques, se utiliza el Apache5 HttpClient .Builder
Práctica recomendada: dedicar una instancia de Apache5 HttpClient a un cliente de servicio
Si necesita configurar una instancia del Apache5HttpClient, le recomendamos que cree la instancia Apache5HttpClient dedicada. Para ello, utilice el httpClientBuilder método del creador del cliente de servicio. De esta forma, el SDK administra el ciclo de vida del cliente HTTP, lo que ayuda a evitar posibles pérdidas de memoria si la instancia Apache5HttpClient no se cierra cuando ya no se necesita.
En el siguiente ejemplo, se crea un S3Client y se configura la instancia integrada Apache5HttpClient con los valores MaxConnections y ConnectionTimeout. La instancia HTTP se crea mediante el método httpClientBuilder de S3Client.Builder.
Importaciones
import software.amazon.awssdk.http.apache5.Apache5HttpClient; import software.amazon.awssdk.services.s3.S3Client; import java.time.Duration;
Código
S3Client s3Client = S3Client // Singleton: Use the s3Client for all requests. .builder() .httpClientBuilder(Apache5HttpClient.builder() .maxConnections(100) .connectionTimeout(Duration.ofSeconds(5)) ) .build(); // Perform work with the s3Client. s3Client.close(); // Requests completed: Close all service clients.
Enfoque alternativo: compartir una instancia Apache5HttpClient
Para reducir el uso de recursos y memoria en su aplicación, puede configurar un Apache5HttpClient y compartirlo entre varios clientes de servicio. El grupo de conexiones HTTP se compartirá, lo que reduce el uso de recursos.
nota
Al compartir una instancia de Apache5HttpClient, es preciso cerrarla cuando esté lista para ser eliminada. El SDK no cerrará la instancia cuando el cliente del servicio esté cerrado.
En el siguiente ejemplo, se configura un cliente HTTP basado en Apache, utilizado por dos clientes de servicio. La ApacheHttpClient instancia configurada se pasa al método HttpClient de cada generador. Cuando los clientes de servicio y el cliente HTTP ya no son necesarios, el código los cierra de forma explícita. El código cierra el cliente HTTP por última vez.
Importaciones
import software.amazon.awssdk.http.SdkHttpClient; import software.amazon.awssdk.http.apache5.Apache5HttpClient; import software.amazon.awssdk.services.dynamodb.DynamoDbClient; import software.amazon.awssdk.services.s3.S3Client;
Código
SdkHttpClient apache5HttpClient = Apache5HttpClient.builder() .maxConnections(100).build(); // Singletons: Use the s3Client and dynamoDbClient for all requests. S3Client s3Client = S3Client.builder() .httpClient(apache5HttpClient).build(); DynamoDbClient dynamoDbClient = DynamoDbClient.builder() .httpClient(apache5HttpClient).build(); // Perform work with the s3Client and dynamoDbClient. // Requests completed: Close all service clients. s3Client.close(); dynamoDbClient.close(); apache5HttpClient.close(); // Explicitly close apache5HttpClient.