Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Configurazione del client HTTP basato su Apache 5.x
Accedi ad Apache 5 HttpClient
Per utilizzare il, Apache5HttpClient è necessario aggiungere una dipendenza apache5-client e configurare Apache5HttpClient in modo esplicito i client di servizio.
<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>
*Sostituisci la versione mostrata in rosso con la versione di Java SDK che desideri utilizzare. Trova le ultime novità su Maven
Usa e configura il Apache5HttpClient
È possibile configurare un'istanza Apache5HttpClient insieme alla creazione di un client di servizio oppure configurare una singola istanza da condividere tra più client di servizio.
Con entrambi gli approcci, si utilizza Apache5 HttpClient .Builder
Procedura consigliata: dedicare un'istanza Apache5 a un client di servizio HttpClient
Se devi configurare un'istanza diApache5HttpClient, ti consigliamo di creare l'istanza dedicata. Apache5HttpClient Puoi farlo utilizzando il httpClientBuilder metodo del builder del client del servizio. In questo modo, il ciclo di vita del client HTTP viene gestito dall'SDK, che aiuta a evitare potenziali perdite di memoria se l'Apache5HttpClientistanza non viene chiusa quando non è più necessaria.
L'esempio seguente crea un S3Client e configura l'istanza incorporata di con i valori MaxConnections e ConnectionTimeout. Apache5HttpClient L'istanza HTTP viene creata utilizzando il metodo di. httpClientBuilder S3Client.Builder
Importazioni
import software.amazon.awssdk.http.apache5.Apache5HttpClient; import software.amazon.awssdk.services.s3.S3Client; import java.time.Duration;
Codice
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.
Approccio alternativo: condividere un'Apache5HttpClientistanza
Per ridurre l'utilizzo di risorse e memoria per l'applicazione, è possibile configurarne un'applicazione Apache5HttpClient e condividerla tra più client di servizio. Il pool di connessioni HTTP verrà condiviso, il che riduce l'utilizzo delle risorse.
Nota
Quando un'Apache5HttpClientistanza è condivisa, è necessario chiuderla quando è pronta per essere eliminata. L'SDK non chiuderà l'istanza quando il client del servizio viene chiuso.
L'esempio seguente configura un client HTTP basato su Apache utilizzato da due client di servizio. L'ApacheHttpClientistanza configurata viene passata al metodo HttpClient di ogni builder. Quando i client di servizio e il client HTTP non sono più necessari, il codice li chiude esplicitamente. Il codice chiude per ultimo il client HTTP.
Importazioni
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;
Codice
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.