

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Konfigurieren Sie den Apache 5.x-basierten HTTP-Client
<a name="http-configuration-apache5"></a>

## Greifen Sie auf den Apache5 zu HttpClient
<a name="http-apache-5-dependency"></a>

Um das verwenden zu können, müssen `Apache5HttpClient` Sie eine Abhängigkeit von Ihren Service-Clients hinzufügen **apache5-client** und diese explizit konfigurieren`Apache5HttpClient`.

```
<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>
```

\$1Ersetzen Sie die rot dargestellte Version durch die Version des Java-SDK, die Sie verwenden möchten. Finden Sie die neuesten Informationen auf [Maven Central](https://central.sonatype.com/artifact/software.amazon.awssdk/bom).

### Verwenden und konfigurieren Sie den `Apache5HttpClient`
<a name="http-config-apache-5-config"></a>

Sie können eine Instanz von `Apache5HttpClient` konfigurieren und gleichzeitig einen Service Client erstellen, oder Sie können eine einzelne Instanz so konfigurieren, dass sie von mehreren Service Clients gemeinsam genutzt wird. 

Bei beiden Ansätzen verwenden Sie den [Apache5 HttpClient .Builder](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/http/apache5/Apache5HttpClient.Builder.html), um die Eigenschaften für den Apache 5-basierten HTTP-Client zu konfigurieren.

#### Bewährtes Verfahren: Dedizieren Sie eine Apache5-Instanz einem Service-Client HttpClient
<a name="http-apache5-dedicated-instance"></a>

Wenn Sie eine Instanz von konfigurieren müssen, empfehlen wir Ihnen`Apache5HttpClient`, die dedizierte Instanz zu erstellen. `Apache5HttpClient` Sie können dies tun, indem Sie die httpClientBuilder Methode des Builders des Service-Clients verwenden. Auf diese Weise wird der Lebenszyklus des HTTP-Clients vom SDK verwaltet, wodurch potenzielle Speicherlecks vermieden werden, wenn die `Apache5HttpClient` Instanz nicht geschlossen wird, wenn sie nicht mehr benötigt wird.

Im folgenden Beispiel wird ein S3Client erstellt und die eingebettete Instanz von `Apache5HttpClient` mit den Werten MaxConnections und ConnectionTimeout konfiguriert. Die HTTP-Instanz wird mit der Methode von erstellt. `httpClientBuilder` `S3Client.Builder`

**Importe**

```
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.
```

#### Alternativer Ansatz: Eine `Apache5HttpClient` Instanz teilen
<a name="http-apache5-shared-instance"></a>

Um den Ressourcen- und Speicherverbrauch für Ihre Anwendung zu senken, können Sie eine konfigurieren `Apache5HttpClient` und sie von mehreren Service-Clients gemeinsam nutzen. Der HTTP-Verbindungspool wird gemeinsam genutzt, was die Ressourcennutzung senkt.

**Anmerkung**  
Wenn eine `Apache5HttpClient` Instanz gemeinsam genutzt wird, müssen Sie sie schließen, wenn sie bereit ist, gelöscht zu werden. Das SDK schließt die Instanz nicht, wenn der Service-Client geschlossen wird.

Im folgenden Beispiel wird ein Apache-basierter HTTP-Client konfiguriert, der von zwei Service-Clients verwendet wird. Die konfigurierte `ApacheHttpClient` Instanz wird an die HttpClient-Methode jedes Builders übergeben. Wenn die Service-Clients und der HTTP-Client nicht mehr benötigt werden, werden sie durch den Code explizit geschlossen. Der Code schließt den HTTP-Client zuletzt.

**Importe**

```
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.
```