Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
HTTPclientes
Puede cambiar el HTTP cliente para usarlo en su cliente de servicio, así como cambiar la configuración predeterminada de HTTP los clientes con AWS SDK for Java 2.x. En esta sección se describen HTTP los clientes y la configuración deSDK.
HTTPclientes disponibles en el SDK para Java
Clientes síncronos
HTTPLos clientes síncronos SDK para Java implementan la SdkHttpClientS3Client
o elDynamoDbClient
, requiere el uso de un cliente HTTP síncrono. AWS SDK for Java Ofrece tres clientes síncronosHTTP.
- ApacheHttpClient (predeterminado)
-
ApacheHttpClient
es el HTTP cliente predeterminado para los clientes de servicios síncronos. Para obtener información acerca de cómo configurar el ApacheHttpClient
, consulte Configurar el cliente basado en Apache HTTP. - AwsCrtHttpClient
-
AwsCrtHttpClient
proporciona E/S de alto rendimiento y sin bloqueos. Se basa en el cliente Http AWS Common Runtime (CRT). Para obtener información sobre cómo configurar el AwsCrtHttpClient
y utilizar el servicio con los clientes, consulte Configurar HTTP clientes AWS CRT basados. - UrlConnectionHttpClient
-
Para minimizar la cantidad de archivos jar y bibliotecas de terceros que utiliza la aplicación, puede utilizar el UrlConnectionHttpClient
. Para obtener información acerca de cómo configurar el UrlConnectionHttpClient
, consulte Configurar el HTTP cliente URLConnection basado.
Clientes asíncronos
HTTPLos clientes asíncronos SDK para Java implementan la interfaz. SdkAsyncHttpClientS3AsyncClient
o el, requiere el uso de un cliente asíncrono. DynamoDbAsyncClient
HTTP Ofrece dos clientes asíncronos. AWS SDK for Java HTTP
- NettyNioAsyncHttpClient (predeterminado)
-
NettyNioAsyncHttpClient
es el HTTP cliente predeterminado que utilizan los clientes asíncronos. Para obtener información acerca de cómo configurar el NettyNioAsyncHttpClient
, consulte Configurar el cliente basado en Netty HTTP. - AwsCrtAsyncHttpClient
-
AwsCrtAsyncHttpClient
Se basa en el cliente AWS Common Runtime ()CRT. HTTP Para obtener información acerca de cómo configurar el AwsCrtAsyncHttpClient
, consulte Configurar HTTP clientes AWS CRT basados.
HTTPrecomendaciones de los clientes
A la hora de elegir una implementación de HTTP cliente entran en juego varios factores. Utilice la siguiente información para ayudarle en la decisión.
Diagrama de flujo de recomendaciones
El siguiente diagrama de flujo proporciona una guía general para ayudarle a determinar qué HTTP cliente utilizar.

HTTPcomparación de clientes
La siguiente tabla proporciona información detallada de cada HTTP cliente.
HTTPcliente | Sínc. or asínc. | Cuándo se debe usar | Limitación o inconveniente |
---|---|---|---|
cliente basado en Apache HTTP (cliente de sincronización HTTP predeterminado) |
Sincronizar | Úselo si prefiere una latencia baja en lugar de un alto rendimiento | Tiempo de inicio más lento en comparación con otros HTTP clientes |
URLConnectionHTTPcliente basado | Sincronizar | Úselo si tiene requisitos estrictos para limitar las dependencias de terceros | No admite el HTTP PATCH método, requerido por algunas operaciones, APIS como Amazon APIGateway Update |
AWS CRTHTTPcliente de sincronización basado en 1 | Sincronizar |
• Úselo si su aplicación se está ejecutando en AWS Lambda - Utilícelo si prefiere un alto rendimiento a una baja latencia • Úselo si prefiere sincronizar SDK clientes |
No se admiten las siguientes propiedades del sistema Java:
|
Cliente basado en Netty HTTP (cliente asíncrono predeterminado) HTTP |
Asíncrono |
• Úselo si su aplicación invoca alguna APIs que requiera compatibilidad con HTTP /2, como Kinesis API SubscribeToShard |
Tiempo de inicio más lento en comparación con otros clientes HTTP |
AWS CRTcliente HTTP asíncrono basado en 1 | Asíncrono | • Úselo si su aplicación se está ejecutando en AWS Lambda - Utilícelo si prefiere un alto rendimiento a una baja latencia • Úselo si prefiere clientes asíncronos SDK |
• No es compatible con clientes de servicio que requieren HTTP 1/2 soporte, como y No se admiten las siguientes propiedades del sistema Java:
|
1 Debido a sus ventajas adicionales, te recomendamos que utilices los HTTP clientes AWS CRT basados en la medida de lo posible.
Valores predeterminados de configuración inteligente
La AWS SDK for Java 2.x versión 2.17.102 o posterior ofrece una función de configuración inteligente por defecto. Esta función optimiza dos propiedades HTTP del cliente junto con otras propiedades que no afectan al cliente. HTTP
Los valores predeterminados de la configuración inteligente establecen valores razonables para las propiedades connectTimeoutInMillis
y tlsNegotiationTimeoutInMillis
en función del valor de modo predeterminado que proporcione. El valor de modo predeterminado se elige según las características de la aplicación.
Para obtener más información sobre los valores predeterminados de la configuración inteligente y sobre cómo elegir el valor de modo predeterminado que mejor se adapte a sus aplicaciones, consulte la AWS SDKs Guía de referencia de herramientas.
A continuación, se muestran cuatro formas de configurar el modo predeterminado para su aplicación.
Si establece el modo predeterminado de forma global con la propiedad del sistema, la variable de entorno o el archivo de AWS configuración, puede anular la configuración al crear un HTTP cliente.
Al crear un HTTP cliente con el httpClientBuilder()
método, la configuración se aplica solo a la instancia que se está creando. Un ejemplo de ello se muestra aquí. En este ejemplo, el HTTP cliente basado en Netty anula cualquier valor de modo predeterminado establecido globalmente para y. connectTimeoutInMillis
tlsNegotiationTimeoutInMillis