

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.

# AWS CRT-basierte HTTP-Clients konfigurieren
<a name="http-configuration-crt"></a>

Zu den AWS CRT-basierten HTTP-Clients gehören synchrone und asynchrone [AwsCrtHttpClient](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/http/crt/AwsCrtHttpClient.html)Clients. [AwsCrtAsyncHttpClient](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/http/crt/AwsCrtAsyncHttpClient.html) Die AWS CRT-basierten HTTP-Clients bieten die folgenden Vorteile für HTTP-Clients:
+ Schnellere SDK-Startup-Zeiten
+ Geringeren Speicherbedarf
+ Reduzierte Latenzzeit
+ Verbindungsgesundheitsverwaltung
+ DNS-Load Balancing

**AWS CRT-basierte Komponenten im SDK**

Die in diesem Thema beschriebenen AWS CRT-basierten *HTTP-Clients* und der AWS CRT-basierte *S3-Client* sind unterschiedliche Komponenten im SDK. 

Die synchronen und asynchronen **AWS CRT-basierten HTTP-Clients sind SDK-HTTP-Client-Schnittstellen** für Implementierungen und werden für die allgemeine HTTP-Kommunikation verwendet. Sie sind Alternativen zu den anderen synchronen oder asynchronen HTTP-Clients im SDK mit zusätzlichen Vorteilen.

Der **[AWS CRT-basierte S3-Client](crt-based-s3-client.md)** ist eine Implementierung der [AsyncClientS3-Schnittstelle](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/s3/S3AsyncClient.html) und wird für die Arbeit mit dem Amazon S3 S3-Service verwendet. Es ist eine Alternative zur Java-basierten Implementierung der `S3AsyncClient` Schnittstelle und bietet mehrere Vorteile.

Obwohl beide Komponenten Bibliotheken aus der [AWS Common Runtime](https://docs.aws.amazon.com/sdkref/latest/guide/common-runtime.html) verwenden, verwenden die AWS CRT-basierten HTTP-Clients die [aws-c-s3-Bibliothek](https://github.com/awslabs/aws-c-s3) nicht und unterstützen auch nicht die API-Funktionen für [mehrteilige Uploads von S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/mpuoverview.html). Der AWS CRT-basierte S3-Client wurde dagegen speziell für die Unterstützung der API-Funktionen für mehrteilige S3-Uploads entwickelt.

## Greifen Sie auf die CRT-basierten HTTP-Clients zu AWS
<a name="http-config-crt-access"></a>

Bevor Sie die AWS CRT-basierten HTTP-Clients verwenden können, fügen Sie das `aws-crt-client` Artefakt mit einer Mindestversion von 2.22.0 zu den Abhängigkeiten Ihres Projekts hinzu.

Verwenden Sie eine der folgenden Optionen, um Ihre Maven-Datei einzurichten. `pom.xml`

**Anmerkung**  
 Sie können die *plattformspezifische JAR-Option* verwenden, wenn Sie die Größe der Laufzeitabhängigkeiten verringern müssen, z. B. wenn Ihre Anwendung in einer Funktion ausgeführt wird. AWS Lambda 

------
#### [ Uber-jar option ]

Standardmäßig `aws-crt-client` verwendet der ein Uber-Jar mit AWS CRT-Artefakten, das Binärdateien für verschiedene Plattformen enthält, darunter Linux, Windows und macOS.

```
<project>
   <properties>
     <aws.sdk.java.version>2.29.10*</aws.sdk.java.version>
  </properties>
  <dependencyManagement>
   <dependencies>
      <dependency>
        <groupId>software.amazon.awssdk</groupId>
        <artifactId>bom</artifactId>
        <version>${aws.sdk.version}</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>
   </dependencies>
  </dependencyManagement>
  <dependencies>
   <dependency>
      <groupId>software.amazon.awssdk</groupId>
      <artifactId>aws-crt-client</artifactId>
   </dependency>
  </dependencies>
</project>
```

\$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).

------
#### [ Platform-specific jar option ]

*Um die Java-Laufzeit auf eine plattformspezifische Version der AWS CRT-Bibliothek zu beschränken, nehmen Sie die folgenden Änderungen an der Uber-JAR-Option vor.*
+ Fügen Sie dem Artefakt `exclusions` des SDK ein Element hinzu. `aws-crt-client` Dieser Ausschluss verhindert, dass das SDK das AWS CRT-Uber-JAR transitiv verwendet.
+ Fügen Sie ein Abhängigkeitselement für die spezifische AWS CRT-Plattformversion hinzu, die Sie benötigen. In den **folgenden Schritten zur Bestimmung der AWS CRT-Artefaktversion** erfahren Sie, wie Sie die richtige Version ermitteln können.

```
<project>
   <properties>
     <aws.sdk.java.version>2.29.101</aws.sdk.java.version>
  </properties>
   <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>software.amazon.awssdk</groupId>
                <artifactId>bom</artifactId>
                <version>${aws.sdk.java.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>software.amazon.awssdk</groupId>
            <artifactId>aws-crt-client</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>software.amazon.awssdk.crt</groupId>
                    <artifactId>aws-crt</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>software.amazon.awssdk.crt</groupId>
            <artifactId>aws-crt</artifactId>
            <version>0.31.32</version>
            <classifier>linux-x86_643</classifier>
        </dependency>
    </dependencies>
```

1 Ersetzen 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).

2 Ersetzen Sie die Version`software.amazon.awssdk.crt:aws-crt`, die durch die *Uber-JAR-Option* bereitgestellt würde. Sehen Sie sich die folgenden **Schritte an, um die Version des AWS CRT-Artefakts zu ermitteln**.

3 Ersetzen Sie den `classifier` Wert durch einen Wert für Ihre Plattform. Eine [Liste der verfügbaren Werte finden Sie auf der GitHub ](https://github.com/awslabs/aws-crt-java?tab=readme-ov-file#platform-specific-jars) Seite AWS CRT for Java.

**Schritte zur Bestimmung der Version des AWS CRT-Artefakts**

Verwenden Sie die folgenden Schritte, um die AWS CRT-Artefaktversion zu ermitteln, die mit der Version des SDK for Java kompatibel ist, die Sie verwenden.

1. Richten Sie Ihre `pom.xml` Datei wie in der *Uber-JAR-Option* gezeigt ein. Mit diesem Setup können Sie sehen, welche Version `software.amazon.awssdk.crt:aws-crt` des SDK standardmäßig enthalten ist.

1. Führen Sie im Stammverzeichnis des Projekts (im selben Verzeichnis wie die `pom.xml` Datei) den folgenden Maven-Befehl aus:

   ```
   mvn dependency:tree -Dincludes=software.amazon.awssdk.crt:aws-crt
   ```

   Maven führt möglicherweise andere Aktionen aus, aber am Ende sollten Sie die Konsolenausgabe der `software.amazon.awssdk.crt:aws-crt` Abhängigkeit sehen, die das SDK transitiv verwendet. Der folgende Ausschnitt zeigt eine Beispielausgabe, die auf einer SDK-Version von basiert: `2.29.10`

   ```
   [INFO] org.example:yourProject:jar:1.0-SNAPSHOT
   [INFO] \- software.amazon.awssdk:aws-crt-client:jar:2.29.10:compile
   [INFO]    \- software.amazon.awssdk.crt:aws-crt:jar:0.31.3:compile
   ```

1. Verwenden Sie die Version, die auf der Konsole für das `software.amazon.awssdk.crt:aws-crt` Artefakt angezeigt wird. In diesem Fall fügen Sie es `0.31.3` zu Ihrer `pom.xml` Datei hinzu.

------

## Verwenden und konfigurieren Sie einen AWS CRT-basierten HTTP-Client
<a name="http-crt-config"></a>

Sie können einen AWS CRT-basierten HTTP-Client zusammen mit der Erstellung eines Service-Clients konfigurieren, oder Sie können eine einzelne Instanz so konfigurieren, dass sie von mehreren Service-Clients gemeinsam genutzt wird. 

Bei beiden Ansätzen verwenden Sie einen Builder, um [die Eigenschaften für die AWS CRT-basierte HTTP-Clientinstanz zu konfigurieren](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/http/crt/AwsCrtHttpClient.Builder.html).

### Bewährtes Verfahren: Dedizieren Sie eine Instanz einem Service-Client
<a name="http-config-crt-one-client"></a>

Wenn Sie eine Instanz eines AWS CRT-basierten HTTP-Clients konfigurieren müssen, empfehlen wir, dass Sie die Instanz dedizieren, indem Sie sie zusammen mit dem Service-Client erstellen. 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 AWS CRT-basierte HTTP-Client-Instanz nicht geschlossen wird, wenn sie nicht mehr benötigt wird.

Im folgenden Beispiel wird ein S3-Serviceclient erstellt und ein AWS CRT-basierter HTTP-Client mit Werten und konfiguriert. `connectionTimeout` `maxConcurrency` 

------
#### [ Synchronous client ]

**Importe**

```
import software.amazon.awssdk.http.crt.AwsCrtHttpClient;
import software.amazon.awssdk.services.s3.S3Client;
import java.time.Duration;
```

**Code**

```
// Singleton: Use s3Client for all requests.
S3Client s3Client = S3Client.builder()
    .httpClientBuilder(AwsCrtHttpClient
        .builder()
        .connectionTimeout(Duration.ofSeconds(3))
        .maxConcurrency(100))
    .build();

// Perform work with the s3Client.

// Requests completed: Close the s3Client.
s3Client.close();
```

------
#### [ Asynchronous client ]

**Importe**

```
import software.amazon.awssdk.http.crt.AwsCrtAsyncHttpClient;
import software.amazon.awssdk.services.s3.S3AsyncClient;
import java.time.Duration;
```

**Code**

```
// Singleton: Use s3AsyncClient for all requests.
S3AsyncClient s3AsyncClient = S3AsyncClient.builder()
    .httpClientBuilder(AwsCrtAsyncHttpClient
        .builder()
        .connectionTimeout(Duration.ofSeconds(3))
        .maxConcurrency(100))
    .build();

// Perform work with the s3AsyncClient.

// Requests completed: Close the s3AsyncClient.
s3AsyncClient.close();
```

------

### Alternativer Ansatz: Eine Instanz teilen
<a name="http-config-crt-multi-clients"></a>

Um die Ressourcen- und Speicherauslastung für Ihre Anwendung gering zu halten, können Sie einen AWS CRT-basierten HTTP-Client konfigurieren und ihn von mehreren Service-Clients gemeinsam nutzen. Der HTTP-Verbindungspool wird gemeinsam genutzt, was die Ressourcennutzung senkt.

**Anmerkung**  
Wenn eine AWS CRT-basierte HTTP-Client-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 eine AWS CRT-basierte HTTP-Clientinstanz mit `connectionTimeout` Werten und konfiguriert. `maxConcurrency` Die konfigurierte Instanz wird an die `httpClient` Methode des Builders jedes Service-Clients übergeben. Wenn die Service-Clients und der HTTP-Client nicht mehr benötigt werden, werden sie explizit geschlossen. Der HTTP-Client wird zuletzt geschlossen.

------
#### [ Synchronous client ]

**Importe**

```
import software.amazon.awssdk.auth.credentials.EnvironmentVariableCredentialsProvider;
import software.amazon.awssdk.awscore.defaultsmode.DefaultsMode;
import software.amazon.awssdk.http.SdkHttpClient;
import software.amazon.awssdk.http.crt.AwsCrtHttpClient;
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.dynamodb.DynamoDbClient;
import software.amazon.awssdk.services.s3.S3Client;
import java.time.Duration;
```

**Code**

```
// Create an AwsCrtHttpClient shared instance.
SdkHttpClient crtHttpClient = AwsCrtHttpClient.builder()
    .connectionTimeout(Duration.ofSeconds(3))
    .maxConcurrency(100)
    .build();

// Singletons: Use the s3Client and dynamoDbClient for all requests.
S3Client s3Client = S3Client.builder()
    .httpClient(crtHttpClient)
    .credentialsProvider(EnvironmentVariableCredentialsProvider.crea
    .defaultsMode(DefaultsMode.IN_REGION)
    .region(Region.US_EAST_1)
    .build();

DynamoDbClient dynamoDbClient = DynamoDbClient.builder()
    .httpClient(crtHttpClient)
    .credentialsProvider(EnvironmentVariableCredentialsProvider.crea
    .defaultsMode(DefaultsMode.IN_REGION)
    .region(Region.US_EAST_1)
    .build();

// Requests completed: Close all service clients.
s3Client.close();
dynamoDbClient.close();
crtHttpClient.close();  // Explicitly close crtHttpClient.
```

------
#### [ Asynchronous client ]

**Importe**

```
import software.amazon.awssdk.auth.credentials.EnvironmentVariableCredentialsProvider;
import software.amazon.awssdk.awscore.defaultsmode.DefaultsMode;
import software.amazon.awssdk.http.async.SdkAsyncHttpClient;
import software.amazon.awssdk.http.crt.AwsCrtAsyncHttpClient;
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.dynamodb.DynamoDbAsyncClient;
import software.amazon.awssdk.services.s3.S3AsyncClient;
import java.time.Duration;
```

**Code**

```
// Create an AwsCrtAsyncHttpClient shared instance.
SdkAsyncHttpClient crtAsyncHttpClient = AwsCrtAsyncHttpClient.builder()
    .connectionTimeout(Duration.ofSeconds(3))
    .maxConcurrency(100)
    .build();

// Singletons: Use the s3AsyncClient and dynamoDbAsyncClient for all requests.
S3AsyncClient s3AsyncClient = S3AsyncClient.builder()
    .httpClient(crtAsyncHttpClient)
    .credentialsProvider(EnvironmentVariableCredentialsProvider.create())
    .defaultsMode(DefaultsMode.IN_REGION)
    .region(Region.US_EAST_1)
    .build();

DynamoDbAsyncClient dynamoDbAsyncClient = DynamoDbAsyncClient.builder()
    .httpClient(crtAsyncHttpClient)
    .credentialsProvider(EnvironmentVariableCredentialsProvider.create())
    .defaultsMode(DefaultsMode.IN_REGION)
    .region(Region.US_EAST_1)
    .build();

// Requests completed: Close all service clients.
s3AsyncClient.close();
dynamoDbAsyncClient.close();
crtAsyncHttpClient.close();  // Explicitly close crtAsyncHttpClient.
```

------

## Stellen Sie einen AWS CRT-basierten HTTP-Client als Standard ein
<a name="setting-the-crt-based-http-client-as-the-default"></a>

Sie können Ihre Maven-Build-Datei so einrichten, dass das SDK einen AWS CRT-basierten HTTP-Client als Standard-HTTP-Client für Service-Clients verwendet.

Dazu fügen Sie jedem Service-Client-Artefakt ein `exclusions` Element mit den standardmäßigen HTTP-Client-Abhängigkeiten hinzu.

Im folgenden `pom.xml` Beispiel verwendet das SDK einen AWS CRT-basierten HTTP-Client für S3-Dienste. Wenn der Service-Client in Ihrem Code ein ist`S3AsyncClient`, verwendet das SDK. `AwsCrtAsyncHttpClient` Wenn der Service-Client ein S3Client ist, verwendet das SDK. `AwsCrtHttpClient` Bei diesem Setup sind der standardmäßige asynchrone HTTP-Client auf Netty-Basis und der standardmäßige asynchrone HTTP-Client auf Apache-Basis nicht verfügbar.

```
<project>
   <properties>
     <aws.sdk.version>VERSION</aws.sdk.version>
  </properties>
  <dependencies>
   <dependency>
      <groupId>software.amazon.awssdk</groupId>
      <artifactId>s3</artifactId>
      <version>${aws.sdk.version}</version>
      <exclusions>
         <exclusion>
            <groupId>software.amazon.awssdk</groupId>
            <artifactId>netty-nio-client</artifactId>
         </exclusion>
         <exclusion>
            <groupId>software.amazon.awssdk</groupId>
            <artifactId>apache-client</artifactId>
         </exclusion>
      </exclusions>
   </dependency>
   <dependency>
      <groupId>software.amazon.awssdk</groupId>
      <artifactId>aws-crt-client</artifactId>
   </dependency>
  </dependencies>
</project>
```

Den neuesten Wert finden Sie im zentralen Maven-Repository. [https://central.sonatype.com/artifact/software.amazon.awssdk/bom](https://central.sonatype.com/artifact/software.amazon.awssdk/bom)

**Anmerkung**  
Wenn mehrere Service-Clients in einer `pom.xml` Datei deklariert sind, benötigen alle das `exclusions` XML-Element.

### Verwenden Sie eine Java-Systemeigenschaft
<a name="setting-via-java-system-property"></a>

Um die AWS CRT-basierten HTTP-Clients als Standard-HTTP für Ihre Anwendung zu verwenden, können Sie die Java-Systemeigenschaft `software.amazon.awssdk.http.async.service.impl` auf den Wert von setzen. `software.amazon.awssdk.http.crt.AwsCrtSdkHttpService`

Um den Wert beim Start der Anwendung festzulegen, führen Sie einen Befehl aus, der dem folgenden ähnelt.

```
java app.jar -Dsoftware.amazon.awssdk.http.async.service.impl=\
software.amazon.awssdk.http.crt.AwsCrtSdkHttpService
```

Verwenden Sie den folgenden Codeausschnitt, um die Systemeigenschaft in Ihrem Anwendungscode festzulegen.

```
System.setProperty("software.amazon.awssdk.http.async.service.impl",
"software.amazon.awssdk.http.crt.AwsCrtSdkHttpService");
```

**Anmerkung**  
Sie müssen eine Abhängigkeit von dem `aws-crt-client` Artefakt in Ihrer `poml.xml` Datei hinzufügen, wenn Sie eine Systemeigenschaft verwenden, um die Verwendung der AWS CRT-basierten HTTP-Clients zu konfigurieren.

## Erweiterte Konfiguration von CRT-basierten HTTP-Clients AWS
<a name="configuring-the-crt-based-http-client"></a>

Sie können verschiedene Konfigurationseinstellungen der AWS CRT-basierten HTTP-Clients verwenden, einschließlich der Konfiguration des Verbindungsstatus und der maximalen Leerlaufzeit. Sie können die [verfügbaren Konfigurationsoptionen](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/http/crt/AwsCrtAsyncHttpClient.Builder.html) für überprüfen. `AwsCrtAsyncHttpClient` Sie können dieselben Optionen für den konfigurieren`AwsCrtHttpClient`.

### Konfiguration des Verbindungsstatus
<a name="connection-health-checks"></a>

Sie können die Verbindungsintegritätskonfiguration für die AWS CRT-basierten HTTP-Clients konfigurieren, indem Sie die `connectionHealthConfiguration` Methode im HTTP-Client-Builder verwenden. 

Im folgenden Beispiel wird ein S3-Dienstclient erstellt, der eine AWS CRT-basierte HTTP-Clientinstanz verwendet, die mit einer Verbindungsintegritätskonfiguration und einer maximalen Leerlaufzeit für Verbindungen konfiguriert ist. 

------
#### [ Synchronous client ]

**Importe**

```
import software.amazon.awssdk.http.crt.AwsCrtHttpClient;
import software.amazon.awssdk.services.s3.S3Client;
import java.time.Duration;
```

**Code**

```
// Singleton: Use the s3Client for all requests.
S3Client s3Client = S3Client.builder()
    .httpClientBuilder(AwsCrtHttpClient
        .builder()
        .connectionHealthConfiguration(builder -> builder
            .minimumThroughputInBps(32000L)
            .minimumThroughputTimeout(Duration.ofSeconds(3)))
        .connectionMaxIdleTime(Duration.ofSeconds(5)))
    .build();

// Perform work with s3Client.

// Requests complete: Close the service client.
s3Client.close();
```

------
#### [ Asynchronous client ]

**Importe**

```
import software.amazon.awssdk.http.crt.AwsCrtAsyncHttpClient;
import software.amazon.awssdk.services.s3.S3AsyncClient;
import java.time.Duration;
```

**Code**

```
// Singleton: Use the s3AsyncClient for all requests.
S3AsyncClient s3AsyncClient = S3AsyncClient.builder()
    .httpClientBuilder(AwsCrtAsyncHttpClient
        .builder()
        .connectionHealthConfiguration(builder -> builder
            .minimumThroughputInBps(32000L)
            .minimumThroughputTimeout(Duration.ofSeconds(3)))
        .connectionMaxIdleTime(Duration.ofSeconds(5)))
    .build();

// Perform work with s3AsyncClient.

// Requests complete: Close the service client.
s3AsyncClient.close();
```

------

## HTTP/2-Support
<a name="limitation-the-crt-based-http-client"></a>

Das HTTP/2-Protokoll wird in den AWS CRT-basierten HTTP-Clients noch nicht unterstützt, ist aber für eine future Version geplant. 

Wenn Sie in der Zwischenzeit Service-Clients verwenden, die HTTP/2-Unterstützung benötigen, wie z. B. der [KinesisAsyncClient](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/kinesis/KinesisAsyncClient.html)oder der, sollten Sie in Erwägung ziehen [TranscribeStreamingAsyncClient](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/transcribestreaming/TranscribeStreamingAsyncClient.html), stattdessen den zu verwenden. [NettyNioAsyncHttpClient](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/http/nio/netty/NettyNioAsyncHttpClient.html) 

## Beispiel für eine Proxykonfiguration
<a name="http-config-crt-proxy-ex"></a>

Der folgende Codeausschnitt zeigt die Verwendung der Einstellung [https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/http/crt/ProxyConfiguration.Builder.html](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/http/crt/ProxyConfiguration.Builder.html), die Sie zur Konfiguration der Proxyeinstellungen verwenden, im Code.

------
#### [ Synchronous client ]

**Importe**

```
import software.amazon.awssdk.http.SdkHttpClient;
import software.amazon.awssdk.http.crt.AwsCrtHttpClient;
import software.amazon.awssdk.http.crt.ProxyConfiguration;
```

**Code**

```
SdkHttpClient crtHttpClient = AwsCrtHttpClient.builder()
    .proxyConfiguration(ProxyConfiguration.builder()
        .scheme("https")
        .host("myproxy")
        .port(1234)
        .username("username")
        .password("password")
        .nonProxyHosts(Set.of("localhost", "host.example.com"))
        .build())
    .build();
```

------
#### [ Asynchronous client ]

**Importe**

```
import software.amazon.awssdk.http.async.SdkAsyncHttpClient;
import software.amazon.awssdk.http.crt.AwsCrtAsyncHttpClient;
import software.amazon.awssdk.http.crt.ProxyConfiguration;
```

**Code**

```
SdkAsyncHttpClient crtAsyncHttpClient = AwsCrtAsyncHttpClient.builder()
    .proxyConfiguration(ProxyConfiguration.builder()
        .scheme("https")
        .host("myproxy")
        .port(1234)
        .username("username")
        .password("password")
        .nonProxyHosts(Set.of("localhost", "host.example.com"))
        .build())
    .build();
```

------

Die entsprechenden Java-Systemeigenschaften für die Proxykonfiguration werden im folgenden Befehlszeilenausschnitt angezeigt.

```
$ java -Dhttps.proxyHost=myproxy -Dhttps.proxyPort=1234 -Dhttps.proxyUser=username \
-Dhttps.proxyPassword=password -Dhttp.nonProxyHosts=localhost|host.example.com -cp ... App
```

**Wichtig**  
Um eine der HTTPS-Proxy-Systemeigenschaften verwenden zu können, muss die `scheme` Eigenschaft im Code auf gesetzt werden. `https` Wenn die Schemaeigenschaft nicht im Code festgelegt ist, verwendet das Schema standardmäßig HTTP und das SDK sucht nur nach `http.*` Systemeigenschaften.

Das äquivalente Setup, das Umgebungsvariablen verwendet, ist:

```
// Set the following environment variables.
// $ export HTTPS_PROXY="https://username:password@myproxy:1234"
// $ export NO_PROXY="localhost|host.example.com"

// Set the 'useSystemPropertyValues' to false on the proxy configuration.
SdkAsyncHttpClient crtAsyncHttpClient = AwsCrtAsyncHttpClient.builder()
    .proxyConfiguration(ProxyConfiguration.builder()
        .scheme("https")
        .useSystemPropertyValues(Boolean.FALSE)
        .build())
    .build();

// Run the application.
// $ java -cp ... App
```