

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.

# HTTP-Proxys konfigurieren
<a name="http-config-proxy-support"></a>

Sie können HTTP-Proxys konfigurieren, indem Sie Code verwenden, Java-Systemeigenschaften festlegen oder Umgebungsvariablen festlegen.

## Im Code konfigurieren
<a name="http-config-proxy-support-in-code"></a>

Sie konfigurieren Proxys im Code mit einem kundenspezifischen `ProxyConfiguration` Builder, wenn Sie den Service-Client erstellen. Der folgende Code zeigt ein Beispiel für eine Proxykonfiguration für einen Apache-basierten HTTP-Client, der von einem Amazon S3-Serviceclient verwendet wird.

```
SdkHttpClient httpClient1 = ApacheHttpClient.builder()
    .proxyConfiguration(ProxyConfiguration.builder()
        .endpoint(URI.create("http://proxy.example.com"))
        .username("username")
        .password("password")
        .addNonProxyHost("localhost")
        .build())
    .build();

S3Client s3Client = S3Client.builder()
    .httpClient(httpClient)
    .build();
```

Der Abschnitt für jeden HTTP-Client in diesem Thema zeigt ein Beispiel für eine Proxykonfiguration.
+ [Apache HTTP-Client](http-configuration-apache.md#http-configuration-apache-proxy-conf-ex)
+ [URLConnectionbasierter HTTP-Client](http-configuration-url.md#http-configuration-url-proxy-conf-ex)
+ [Netty-basierter HTTP-Client](http-configuration-netty.md#http-config-netty-proxy-ex)
+ [AWS CRT-basierter HTTP-Client](http-configuration-crt.md#http-config-crt-proxy-ex)

## Konfigurieren Sie HTTP-Proxys mit externen Einstellungen
<a name="http-config-proxy-support-external"></a>

Auch wenn Sie nicht explizit einen `ProxyConfiguration` Builder im Code verwenden, sucht das SDK nach externen Einstellungen, um eine Standard-Proxykonfiguration zu konfigurieren. 

Standardmäßig sucht das SDK zuerst nach JVM-Systemeigenschaften. Wenn auch nur eine Eigenschaft gefunden wird, verwendet das SDK den Wert und alle anderen Systemeigenschaftswerte. Wenn keine Systemeigenschaften verfügbar sind, sucht das SDK nach Proxy-Umgebungsvariablen.

Das SDK kann die folgenden Java-Systemeigenschaften und Umgebungsvariablen verwenden.


**Java-Systemeigenschaften**  

| Systemeigenschaft | Description | Unterstützung für HTTP-Clients | 
| --- | --- | --- | 
| http.ProxyHost | Hostname des HTTP-Proxyservers | Alle | 
| http.ProxyPort | Portnummer des HTTP-Proxyservers | Alle | 
| http.ProxyUser | Benutzername für die HTTP-Proxyauthentifizierung | Alle | 
| http.ProxyPassword | Passwort für die HTTP-Proxyauthentifizierung | Alle | 
| http. nonProxyHosts | Liste der Hosts, die unter Umgehung des Proxys direkt erreicht werden sollen. [Diese Liste ist auch gültig, wenn HTTPS verwendet wird](https://docs.oracle.com/javase/8/docs/technotes/guides/net/proxies.html). | Alle | 
| https.proxyHost | Hostname des HTTPS-Proxyservers | Netty, CRT | 
| HTTPS.Proxy-Port | Portnummer des HTTPS-Proxyservers | Netty, CRT | 
| https.proxyBenutzer | Benutzername für die HTTPS-Proxyauthentifizierung | Netty, CRT | 
| https.proxyPasswort | Passwort für die HTTPS-Proxyauthentifizierung | Netty, CRT | 


**Umgebungsvariablen**  

| Umgebungsvariable | Description | HTTP-Client-Unterstützung | 
| --- | --- | --- | 
| HTTP\_PROXY 1 | Eine gültige URL mit dem Schema HTTP | Alle | 
| HTTPS\_PROXY 1 | Eine gültige URL mit dem Schema HTTPS | Netty, CRT | 
| KEIN PROXY 2 | Liste der Hosts, die unter Umgehung des Proxys direkt erreicht werden sollen. Die Liste gilt sowohl für HTTP als auch für HTTPS. | Alle | 

### Schlüssel und Fußnoten anzeigen
<a name="http-config-proxy-support-ext-key-footnote"></a>

**Alle** — Alle vom SDK angebotenen HTTP-Clients—`UrlConnectionHttpClient`,, `ApacheHttpClient``NettyNioAsyncHttpClient`,`AwsCrtAsyncHttpClient`.

**Netty** — Der Netty-basierte HTTP-Client (). `NettyNioAsyncHttpClient`

**CRT** — Die AWS CRT-basierten HTTP-Clients (und). `AwsCrtHttpClient` `AwsCrtAsyncHttpClient`

1 Die abgefragte Umgebungsvariable, ob `HTTP_PROXY` oder`HTTPS_PROXY`, hängt von der Schemaeinstellung im Client ab. `ProxyConfiguration` Das Standardschema ist HTTP. Der folgende Ausschnitt zeigt, wie Sie das Schema auf HTTPS ändern, das für die Auflösung von Umgebungsvariablen verwendet wird.

```
SdkHttpClient httpClient = ApacheHttpClient.builder()
    .proxyConfiguration(ProxyConfiguration.builder()
        .scheme("https")
        .build())
    .build();
```

2 Die `NO_PROXY` Umgebungsvariable unterstützt eine Mischung aus „\|“ und „,“ -Trennzeichen zwischen Hostnamen. Hostnamen können den Platzhalter „\*“ enthalten.

## Verwenden Sie eine Kombination von Einstellungen
<a name="http-config-proxy-support-combo"></a>

Sie können eine Kombination von HTTP-Proxyeinstellungen in Code, Systemeigenschaften und Umgebungsvariablen verwenden. 

**Example — Konfiguration, die durch eine Systemeigenschaft und durch Code bereitgestellt wird**  

```
// Command line with the proxy password set as a system property.
$ java -Dhttp.proxyPassword=SYS_PROP_password -cp ... App

// Since the 'useSystemPropertyValues' setting is 'true' (the default), the SDK will supplement 
// the proxy configuration in code with the 'http.proxyPassword' value from the system property.
SdkHttpClient apacheHttpClient = ApacheHttpClient.builder()
            .proxyConfiguration(ProxyConfiguration.builder()
                    .endpoint(URI.create("http://localhost:1234"))
                    .username("username")
                    .build())
            .build();

// Use the apache HTTP client with proxy configuration.
DynamoDbClient dynamoDbClient = DynamoDbClient.builder()
                    .httpClient(apacheHttpClient)
                    .build();
```
Das SDK löst die folgenden Proxyeinstellungen auf.  

```
Host = localhost
Port = 1234
Password = SYS_PROP_password
UserName = username
Non ProxyHost = null
```

**Example — Sowohl Systemeigenschaften als auch Umgebungsvariablen sind verfügbar**  
Der `ProxyConfiguration` Builder jedes HTTP-Clients bietet Einstellungen mit dem Namen `useSystemPropertyValues` und`useEnvironmentVariablesValues`. Standardmäßig sind beide Einstellungen`true`. Wann `true` verwendet das SDK automatisch Werte aus Systemeigenschaften oder Umgebungsvariablen für Optionen, die nicht vom `ProxyConfiguration` Builder bereitgestellt werden.  
Systemeigenschaften haben Vorrang vor Umgebungsvariablen. Wenn eine HTTP-Proxy-Systemeigenschaft gefunden wird, ruft das SDK ***alle*** Werte aus den Systemeigenschaften und keine aus Umgebungsvariablen ab. Wenn Sie Umgebungsvariablen Vorrang vor Systemeigenschaften einräumen möchten, legen Sie den Wert auf fest`useSystemPropertyValues`. `false`
Für dieses Beispiel sind die folgenden Einstellungen zur Laufzeit verfügbar:  

```
// System properties 
http.proxyHost=SYS_PROP_HOST.com
http.proxyPort=2222
http.password=SYS_PROP_PASSWORD
http.user=SYS_PROP_USER

// Environment variables 
HTTP_PROXY="http://EnvironmentUser:EnvironmentPassword@ENV_VAR_HOST:3333"
NO_PROXY="environmentnonproxy.host,environmentnonproxy2.host:1234"
```
Der Service-Client wird mit einer der folgenden Anweisungen erstellt. Keine der Anweisungen legt explizit eine Proxyeinstellung fest.  

```
DynamoDbClient client = DynamoDbClient.create();
DynamoDbClient client = DynamoDbClient.builder().build();
DynamoDbClient client = DynamoDbClient.builder()
    .httpClient(ApacheHttpClient.builder()
        .proxyConfiguration(ProxyConfiguration.builder()
            .build())
        .build())
    .build();
```
Die folgenden Proxyeinstellungen werden vom SDK aufgelöst:  

```
Host = SYS_PROP_HOST.com
Port = 2222
Password = SYS_PROP_PASSWORD
UserName = SYS_PROP_USER
Non ProxyHost = null
```
Da der Service Client über Standard-Proxyeinstellungen verfügt, sucht das SDK nach Systemeigenschaften und dann nach Umgebungsvariablen. Da Einstellungen für Systemeigenschaften Vorrang vor Umgebungsvariablen haben, verwendet das SDK nur Systemeigenschaften.  
Wenn die Verwendung von Systemeigenschaften `false` wie im folgenden Code gezeigt geändert wird, löst das SDK nur die Umgebungsvariablen auf.  

```
DynamoDbClient client = DynamoDbClient.builder()
    .httpClient(ApacheHttpClient.builder()
        .proxyConfiguration(ProxyConfiguration.builder()
            .useSystemPropertyValues(Boolean.FALSE)
            .build())
        .build())
    .build();
```
Die mithilfe von HTTP aufgelösten Proxyeinstellungen sind:  

```
Host = ENV_VAR_HOST
Port = 3333
Password = EnvironmentPassword
UserName = EnvironmentUser
Non ProxyHost = environmentnonproxy.host, environmentnonproxy2.host:1234
```