Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Configuration du client HTTP basé sur Apache 5.x
Accédez à Apache5 HttpClient
Pour utiliser le, Apache5HttpClient vous devez ajouter une dépendance apache5-client et une configuration explicite Apache5HttpClient sur vos clients de service.
<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>
*Remplacez la version affichée en rouge par la version du SDK Java que vous souhaitez utiliser. Découvrez les dernières actualités sur Maven Central
Utilisez et configurez le Apache5HttpClient
Vous pouvez configurer une instance Apache5HttpClient tout en créant un client de service, ou vous pouvez configurer une instance unique à partager entre plusieurs clients de service.
Quelle que soit l'approche, vous utilisez Apache5 HttpClient .Builder
Meilleure pratique : dédier une HttpClient instance Apache5 à un client de service
Si vous devez configurer une instance deApache5HttpClient, nous vous recommandons de créer l'Apache5HttpClientinstance dédiée. Vous pouvez le faire en utilisant la httpClientBuilder méthode du générateur du client de service. Ainsi, le cycle de vie du client HTTP est géré par le SDK, ce qui permet d'éviter d'éventuelles fuites de mémoire si l'Apache5HttpClientinstance n'est pas fermée alors qu'elle n'est plus nécessaire.
L'exemple suivant crée un S3Client et configure l'instance intégrée de Apache5HttpClient avec les valeurs MaxConnections et ConnectionTimeout. L'instance HTTP est créée à l'aide de la httpClientBuilder méthode deS3Client.Builder.
Importations
import software.amazon.awssdk.http.apache5.Apache5HttpClient; import software.amazon.awssdk.services.s3.S3Client; import java.time.Duration;
Code
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.
Approche alternative : partager une Apache5HttpClient instance
Pour réduire l'utilisation des ressources et de la mémoire de votre application, vous pouvez configurer un Apache5HttpClient et le partager entre plusieurs clients de service. Le pool de connexions HTTP sera partagé, ce qui réduit l'utilisation des ressources.
Note
Lorsqu'une Apache5HttpClient instance est partagée, vous devez la fermer lorsqu'elle est prête à être supprimée. Le SDK ne ferme pas l'instance lorsque le client de service est fermé.
L'exemple suivant configure un client HTTP basé sur Apache qui est utilisé par deux clients de service. L'ApacheHttpClientinstance configurée est transmise à la méthode HttpClient de chaque générateur. Lorsque les clients du service et le client HTTP ne sont plus nécessaires, le code les ferme explicitement. Le code ferme le client HTTP en dernier.
Importations
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;
Code
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.