

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Konfigurasikan klien HTTP berbasis Apache 5.x
<a name="http-configuration-apache5"></a>

## Akses Apache5 HttpClient
<a name="http-apache-5-dependency"></a>

Untuk menggunakan `Apache5HttpClient` Anda harus menambahkan ketergantungan pada **apache5-client** dan secara eksplisit mengkonfigurasi `Apache5HttpClient` pada klien layanan Anda.

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

\$1 Ganti versi yang ditampilkan dalam warna merah dengan versi Java SDK yang ingin Anda gunakan. Temukan yang terbaru di [Maven Central](https://central.sonatype.com/artifact/software.amazon.awssdk/bom).

### Gunakan dan konfigurasikan `Apache5HttpClient`
<a name="http-config-apache-5-config"></a>

Anda dapat mengonfigurasi instance `Apache5HttpClient` bersama dengan membangun klien layanan, atau Anda dapat mengonfigurasi satu instance untuk dibagikan di beberapa klien layanan. 

Dengan salah satu pendekatan, Anda menggunakan [Apache5 HttpClient .Builder](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/http/apache5/Apache5HttpClient.Builder.html) untuk mengkonfigurasi properti untuk klien HTTP berbasis Apache 5.

#### Praktik terbaik: dedikasikan HttpClient instance Apache5 ke klien layanan
<a name="http-apache5-dedicated-instance"></a>

Jika Anda perlu mengonfigurasi instance`Apache5HttpClient`, kami sarankan Anda membuat `Apache5HttpClient` instance khusus. Anda dapat melakukannya dengan menggunakan httpClientBuilder metode pembangun klien layanan. Dengan cara ini, siklus hidup klien HTTP dikelola oleh SDK, yang membantu menghindari potensi kebocoran memori jika `Apache5HttpClient` instance tidak ditutup saat tidak lagi diperlukan.

Contoh berikut membuat S3Client dan mengkonfigurasi instance tertanam `Apache5HttpClient` dengan nilai MaxConnections dan ConnectionTimeout. Contoh HTTP dibuat menggunakan `httpClientBuilder` metode`S3Client.Builder`.

**Impor**

```
import software.amazon.awssdk.http.apache5.Apache5HttpClient;
import software.amazon.awssdk.services.s3.S3Client;
import java.time.Duration;
```

**Kode**

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

#### Pendekatan alternatif: bagikan `Apache5HttpClient` contoh
<a name="http-apache5-shared-instance"></a>

Untuk membantu menjaga penggunaan sumber daya dan memori lebih rendah untuk aplikasi Anda, Anda dapat mengonfigurasi `Apache5HttpClient` dan membagikannya di beberapa klien layanan. Kumpulan koneksi HTTP akan dibagikan, yang menurunkan penggunaan sumber daya.

**catatan**  
Ketika sebuah `Apache5HttpClient` instance dibagikan, Anda harus menutupnya ketika sudah siap untuk dibuang. SDK tidak akan menutup instance saat klien layanan ditutup.

Contoh berikut mengkonfigurasi klien HTTP berbasis Apache yang digunakan oleh dua klien layanan. `ApacheHttpClient`Instance yang dikonfigurasi diteruskan ke metode HttpClient dari setiap pembangun. Ketika klien layanan dan klien HTTP tidak lagi diperlukan, kode secara eksplisit menutupnya. Kode menutup klien HTTP terakhir.

**Impor**

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

**Kode**

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