Selecione suas preferências de cookies

Usamos cookies essenciais e ferramentas semelhantes que são necessárias para fornecer nosso site e serviços. Usamos cookies de desempenho para coletar estatísticas anônimas, para que possamos entender como os clientes usam nosso site e fazer as devidas melhorias. Cookies essenciais não podem ser desativados, mas você pode clicar em “Personalizar” ou “Recusar” para recusar cookies de desempenho.

Se você concordar, a AWS e terceiros aprovados também usarão cookies para fornecer recursos úteis do site, lembrar suas preferências e exibir conteúdo relevante, incluindo publicidade relevante. Para aceitar ou recusar todos os cookies não essenciais, clique em “Aceitar” ou “Recusar”. Para fazer escolhas mais detalhadas, clique em “Personalizar”.

Interceptores HTTP - AWS SDK para Kotlin

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Interceptores HTTP

Você pode usar interceptores para se conectar à execução de solicitações e respostas da API. Os interceptores são mecanismos abertos nos quais o SDK chama o código que você grava para injetar comportamento no ciclo de vida da solicitação/resposta. Dessa forma, você pode modificar uma solicitação em andamento, depurar o processamento da solicitação, visualizar exceções e muito mais.

O exemplo a seguir mostra um interceptor simples que adiciona um cabeçalho adicional a todas as solicitações de saída antes que o loop de repetição seja inserido.

class AddHeader( private val key: String, private val value: String ) : HttpInterceptor { override suspend fun modifyBeforeRetryLoop(context: ProtocolRequestInterceptorContext<Any, HttpRequest>): HttpRequest { val httpReqBuilder = context.protocolRequest.toBuilder() httpReqBuilder.headers[key] = value return httpReqBuilder.build() } }

Para obter mais informações e os ganchos de interceptação disponíveis, consulte a interface do Interceptor.

Registro do interceptor

Você registra interceptores ao construir um cliente de serviço ou ao substituir a configuração de um conjunto específico de operações.

Interceptor para todas as operações do cliente de serviço

O código a seguir adiciona uma AddHeader instância à propriedade interceptors do construtor. Essa adição adiciona o x-foo-version cabeçalho a todas as operações antes que o loop de repetição seja inserido.

val s3 = S3Client.fromEnvironment { interceptors += AddHeader("x-foo-version", "1.0") } // All service operations invoked using 's3' will have the header appended. s3.listBuckets { ... } s3.listObjectsV2 { ... }

Interceptor somente para operações específicas

Usando a withConfig extensão, você pode substituir a configuração do cliente de serviço para uma ou mais operações para qualquer cliente de serviço. Com esse recurso, você pode registrar interceptores adicionais para um subconjunto de operações.

O exemplo a seguir substitui a configuração da s3 instância para operações dentro da use extensão. As operações chamadas s3Scoped contêm os cabeçalhos x-foo-version e os x-bar-version cabeçalhos.

// 's3' instance created in the previous code snippet. s3.withConfig { interceptors += AddHeader("x-bar-version", "3.7") }.use { s3Scoped -> // All service operations invoked using 's3Scoped' trigger interceptors // that were registered when the client was created and any added in the // withConfig { ... } extension. }
PrivacidadeTermos do sitePreferências de cookies
© 2025, Amazon Web Services, Inc. ou suas afiliadas. Todos os direitos reservados.