CronetEngine.Builder

class CronetEngine.Builder


Um builder para CronetEngines, que permite a configuração de CronetEngine no tempo de execução. As opções de configuração são definidas no builder e, em seguida, build é chamado para criar o CronetEngine.

Resumo

Tipos aninhados

Uma classe que fornece um método para carregar a biblioteca nativa do Cronet.

Constantes

const Int

Configuração para desativar o cache HTTP.

const Int

Configuração para ativar o cache em disco, incluindo dados HTTP.

const Int

Configuração para ativar o cache em disco, excluindo dados HTTP.

const Int

Configuração para ativar o cache HTTP na memória, incluindo dados HTTP.

Construtores públicos

Builder(context: Context!)

Cria um objeto Builder que facilita a criação de um CronetEngine.

Funções públicas

CronetEngine.Builder!
addPublicKeyPins(
    hostName: String!,
    pinsSha256: (Mutable)Set<ByteArray!>!,
    includeSubdomains: Boolean,
    expirationDate: Date!
)

Fixa um conjunto de chaves públicas para um determinado host.

CronetEngine.Builder!
addQuicHint(host: String!, port: Int, alternatePort: Int)

Adiciona a dica de que host é compatível com QUIC.

CronetEngine!

Crie um CronetEngine usando a configuração deste builder.

CronetEngine.Builder!

Define se a compactação Brotli está ativada.

CronetEngine.Builder!

Define se o protocolo HTTP/2 está ativado.

CronetEngine.Builder!
enableHttpCache(cacheMode: Int, maxSize: Long)

Ativa ou desativa o armazenamento em cache de dados HTTP e outras informações, como informações do servidor QUIC.

CronetEngine.Builder!

Ativa o estimador de qualidade da rede, que coleta e informa medições de tempo de retorno (RTT) e taxa de transferência downstream em várias camadas da pilha de rede.

CronetEngine.Builder!

Ativa ou desativa o bypass do fixação de chave pública para âncoras de confiança locais.

CronetEngine.Builder!

Define se o protocolo QUIC está ativado.

String!

Cria uma string User-Agent, incluindo nome e versão do aplicativo, versão de build do sistema, modelo e ID, além da versão do Cronet.

CronetEngine.Builder!
CronetEngine.Builder!

Configura o comportamento da migração de conexão.

CronetEngine.Builder!

Configura o comportamento da pesquisa de nome do host.

CronetEngine.Builder!
CronetEngine.Builder!

Define um LibraryLoader a ser usado para carregar a biblioteca nativa.

CronetEngine.Builder!

Configura o comportamento de proxy.

CronetEngine.Builder!
CronetEngine.Builder!

Configura o comportamento da Cronet ao usar o QUIC.

CronetEngine.Builder!

Define o diretório para cache HTTP e armazenamento de cookies.

CronetEngine.Builder!

Essa função foi descontinuada.

Em versões modernas do Cronet, esse método não faz nada.

CronetEngine.Builder!
setUserAgent(userAgent: String!)

Substitui o cabeçalho User-Agent em todas as solicitações.

Propriedades protegidas

JSONObject!

Representação JSON das opções experimentais.

Constantes

HTTP_CACHE_DISABLED

const val HTTP_CACHE_DISABLED = 0: Int

Configuração para desativar o cache HTTP. Alguns dados ainda podem ser armazenados temporariamente na memória. Transmitido para enableHttpCache.

HTTP_CACHE_DISK

const val HTTP_CACHE_DISK = 3: Int

Configuração para ativar o cache em disco, incluindo dados HTTP. setStoragePath precisa ser chamado antes de transmitir essa constante para enableHttpCache.

HTTP_CACHE_DISK_NO_HTTP

const val HTTP_CACHE_DISK_NO_HTTP = 2: Int

Configuração para ativar o cache em disco, excluindo dados HTTP. setStoragePath precisa ser chamado antes de transmitir essa constante para enableHttpCache.

HTTP_CACHE_IN_MEMORY

const val HTTP_CACHE_IN_MEMORY = 1: Int

Configuração para ativar o cache HTTP na memória, incluindo dados HTTP. Transmitido para enableHttpCache.

Construtores públicos

Builder

Builder(context: Context!)

Cria um objeto Builder que facilita a criação de um CronetEngine. A configuração padrão ativa o HTTP/2 e o QUIC, mas desativa o cache HTTP.

Parâmetros
context: Context!

Android Context, usado por Builder para recuperar o contexto do aplicativo. Uma referência apenas ao contexto do aplicativo será mantida para evitar a extensão desnecessária do ciclo de vida de context.

Funções públicas

addPublicKeyPins

fun addPublicKeyPins(
    hostName: String!,
    pinsSha256: (Mutable)Set<ByteArray!>!,
    includeSubdomains: Boolean,
    expirationDate: Date!
): CronetEngine.Builder!

Fixa um conjunto de chaves públicas para um determinado host. Ao fixar um conjunto de chaves públicas, pinsSha256, a comunicação com hostName é necessária para autenticar com um certificado que tenha uma chave pública do conjunto fixado. Um app pode fixar a chave pública do certificado raiz, de qualquer um dos certificados intermediários ou do certificado de entrada final. A autenticação vai falhar e a comunicação segura não será estabelecida se nenhuma das chaves públicas estiver presente na cadeia de certificados do host, mesmo que ele tente se autenticar com um certificado permitido pelo repositório de certificados confiáveis do dispositivo.

Chamar esse método várias vezes com o mesmo nome de host substitui os fixadores definidos anteriormente para o host.

Para mais informações sobre a fixação de chaves públicas, consulte a RFC 7469 (em inglês).

Parâmetros
hostName: String!

nome do host em que as chaves públicas precisam ser fixadas. Um host que consiste apenas em dígitos e o caractere de ponto é tratado como inválido.

pinsSha256: (Mutable)Set<ByteArray!>!

um conjunto de fixações. Cada fixação é o hash criptográfico SHA-256 da representação ASN.1 codificada em DER das informações da chave pública do assunto (SPKI, na sigla em inglês) do certificado X.509 do host. Use Certificate.getPublicKey() e Key.getEncoded() para obter a representação ASN.1 codificada em DER do SPKI. Embora o método não exija a presença do PIN de backup, que pode ser usado se o controle da chave privada principal for perdido, é altamente recomendável fornecer um.

includeSubdomains: Boolean

indica se a política de fixação deve ser aplicada a subdomínios de hostName.

expirationDate: Date!

especifica a data de validade dos fixadores.

Retorna
CronetEngine.Builder!

o builder para facilitar o encadeamento.

Gera
java.lang.NullPointerException

se algum dos parâmetros de entrada for null.

java.lang.IllegalArgumentException

se o nome do host fornecido for inválido ou se pinsSha256 contiver uma matriz de bytes que não representa um hash SHA-256 válido.

addQuicHint

fun addQuicHint(host: String!, port: Int, alternatePort: Int): CronetEngine.Builder!

Adiciona a dica de que host é compatível com QUIC. enableHttpCache (HTTP_CACHE_DISK) é necessário para aproveitar o estabelecimento de conexão 0-RTT entre sessões.

Parâmetros
host: String!

nome do host do servidor compatível com QUIC.

port: Int

host do servidor compatível com QUIC.

alternatePort: Int

porta alternativa a ser usada para QUIC.

Retorna
CronetEngine.Builder!

o builder para facilitar o encadeamento.

build

fun build(): CronetEngine!

Crie um CronetEngine usando a configuração deste builder.

Retorna
CronetEngine!

construído CronetEngine.

enableBrotli

fun enableBrotli(value: Boolean): CronetEngine.Builder!

Define se a compactação Brotli está ativada. Se ativado, o Brotli será anunciado nos cabeçalhos de solicitação Accept-Encoding. O padrão é "desativado".

Parâmetros
value: Boolean

true para ativar o Brotli e false para desativar.

Retorna
CronetEngine.Builder!

o builder para facilitar o encadeamento.

enableHttp2

fun enableHttp2(value: Boolean): CronetEngine.Builder!

Define se o protocolo HTTP/2 está ativado. O padrão é ativado.

Parâmetros
value: Boolean

true para ativar o HTTP/2, false para desativar.

Retorna
CronetEngine.Builder!

o builder para facilitar o encadeamento.

enableHttpCache

fun enableHttpCache(cacheMode: Int, maxSize: Long): CronetEngine.Builder!

Ativa ou desativa o armazenamento em cache de dados HTTP e outras informações, como informações do servidor QUIC.

Parâmetros
cacheMode: Int

controlar a localização e o tipo de dados armazenados em cache. Precisa ser um dos seguintes valores: HTTP_CACHE_*.

maxSize: Long

Tamanho máximo em bytes usado para armazenar dados em cache (consultivo e talvez excedido às vezes).

Retorna
CronetEngine.Builder!

o builder para facilitar o encadeamento.

enableNetworkQualityEstimator

fun enableNetworkQualityEstimator(value: Boolean): CronetEngine.Builder!

Ativa o estimador de qualidade da rede, que coleta e informa medições de tempo de retorno (RTT) e taxa de transferência downstream em várias camadas da pilha de rede. Depois de ativar o estimador, os listeners de RTT e taxa de transferência podem ser adicionados com addRttListener e addThroughputListener e removidos com removeRttListener e removeThroughputListener. O estimador usa memória e CPU somente quando ativado.

Parâmetros
value: Boolean

true para ativar o estimador de qualidade da rede e false para desativar.

Retorna
CronetEngine.Builder!

o builder para facilitar o encadeamento.

enablePublicKeyPinningBypassForLocalTrustAnchors

fun enablePublicKeyPinningBypassForLocalTrustAnchors(value: Boolean): CronetEngine.Builder!

Ativa ou desativa o bypass do fixação de chave pública para âncoras de confiança locais. Não é recomendável desativar o bypass para âncoras de confiança locais, já que isso pode impedir que o app se comunique com os hosts fixados. Por exemplo, um usuário pode querer enviar todo o tráfego por um proxy habilitado para SSL mudando as configurações de proxy do dispositivo e adicionando o certificado de proxy à lista de âncoras de confiança locais. A desativação da substituição provavelmente vai impedir que o app envie tráfego para os hosts fixados. Para mais informações, consulte "Como o fixação de chaves interage com proxies e filtros locais?" em https://www.chromium.org/Home/chromium-security/security-faq (em inglês).

Parâmetros
value: Boolean

true para ativar o bypass e false para desativar.

Retorna
CronetEngine.Builder!

o builder para facilitar o encadeamento.

enableQuic

fun enableQuic(value: Boolean): CronetEngine.Builder!

Define se o protocolo QUIC está ativado. O padrão é ativado. Se o QUIC estiver ativado, o ID do user agent do QUIC contendo o nome do aplicativo e a versão do Cronet será enviado ao servidor.

Parâmetros
value: Boolean

true para ativar o QUIC e false para desativar.

Retorna
CronetEngine.Builder!

o builder para facilitar o encadeamento.

getDefaultUserAgent

fun getDefaultUserAgent(): String!

Cria uma string User-Agent, incluindo nome e versão do aplicativo, versão de build do sistema, modelo e ID, além da versão do Cronet.

Retorna
String!

String do user agent.

setConnectionMigrationOptions

@ConnectionMigrationOptions.Experimental
fun setConnectionMigrationOptions(
    connectionMigrationOptionsBuilder: ConnectionMigrationOptions.Builder!
): CronetEngine.Builder!

setConnectionMigrationOptions

@ConnectionMigrationOptions.Experimental
fun setConnectionMigrationOptions(
    connectionMigrationOptions: ConnectionMigrationOptions!
): CronetEngine.Builder!

Configura o comportamento da migração de conexão. Para mais detalhes, consulte a documentação de ConnectionMigrationOptions e os métodos individuais de ConnectionMigrationOptions.Builder.

Só é relevante se enableQuic estiver ativado.

Retorna
CronetEngine.Builder!

o builder para facilitar o encadeamento.

setDnsOptions

@DnsOptions.Experimental
fun setDnsOptions(dnsOptions: DnsOptions!): CronetEngine.Builder!

Configura o comportamento da pesquisa de nome do host. Para mais detalhes, consulte a documentação de DnsOptions e os métodos individuais de DnsOptions.Builder.

Só é relevante se enableQuic estiver ativado.

Retorna
CronetEngine.Builder!

o builder para facilitar o encadeamento.

setDnsOptions

@DnsOptions.Experimental
fun setDnsOptions(dnsOptions: DnsOptions.Builder!): CronetEngine.Builder!
Consulte também
setDnsOptions

setLibraryLoader

fun setLibraryLoader(loader: CronetEngine.Builder.LibraryLoader!): CronetEngine.Builder!

Define um LibraryLoader a ser usado para carregar a biblioteca nativa. Se não for definido, a biblioteca será carregada usando loadLibrary.

Parâmetros
loader: CronetEngine.Builder.LibraryLoader!

LibraryLoader a ser usado para carregar a biblioteca nativa.

Retorna
CronetEngine.Builder!

o builder para facilitar o encadeamento.

setProxyOptions

fun setProxyOptions(proxyOptions: ProxyOptions): CronetEngine.Builder!

Configura o comportamento de proxy. Isso afeta, de diferentes maneiras: o estabelecimento de conexões, UrlRequest e BidirectionalStream. Para mais detalhes, consulte a documentação de Proxy.

Isso não deve ser confundido com a configuração de proxy definida pelo usuário, por alguma configuração de perfil empresarial ou (mais provavelmente) por alguma configuração automática de rede (por exemplo, o protocolo de descoberta automática de proxy da Web). Isso geralmente é chamado de configuração de proxy "do sistema". Se presente, respeitar a configuração de proxy do sistema geralmente é um requisito para obter conectividade local e/ou com a Internet. O CronetEngine já processa a configuração de proxy do sistema internamente.

Uma configuração de proxy definida por essa API é chamada de configuração de proxy "de app". A configuração de proxy do app e do sistema são separadas e, mais importante, diferentes. No momento, as configurações de proxy do app e do sistema são mutuamente exclusivas: especificar ProxyOptions substitui a configuração de proxy do sistema, se houver. Isso pode causar problemas de conectividade em alguns cenários em que uma configuração de proxy do sistema está presente. Nesses casos, os usuários podem ficar sem acesso à Internet, a menos que o ProxyOptions tenha sido configurado com um retorno null final. Consulte a documentação do ProxyOptions.

Parâmetros
proxyOptions: ProxyOptions

ProxyOptions a serem usadas para UrlRequest, BiridirectionalStream e conexões estabelecidas pelo CronetEngine criado por este builder.

Retorna
CronetEngine.Builder!

o builder para facilitar o encadeamento.

Gera
java.lang.UnsupportedOperationException

se a implementação do Cronet usada for muito antiga para oferecer suporte a ProxyOptions.

setQuicOptions

@QuicOptions.Experimental
fun setQuicOptions(quicOptionsBuilder: QuicOptions.Builder!): CronetEngine.Builder!
Consulte também
setQuicOptions

setQuicOptions

@QuicOptions.Experimental
fun setQuicOptions(quicOptions: QuicOptions!): CronetEngine.Builder!

Configura o comportamento da Cronet ao usar o QUIC. Para mais detalhes, consulte a documentação de QuicOptions e os métodos individuais de QuicOptions.Builder.

Só é relevante se enableQuic estiver ativado.

Retorna
CronetEngine.Builder!

o builder para facilitar o encadeamento.

setStoragePath

fun setStoragePath(value: String!): CronetEngine.Builder!

Define o diretório para cache HTTP e armazenamento de cookies. O diretório precisa existir.

OBSERVAÇÃO:não use o mesmo diretório de armazenamento com mais de um CronetEngine por vez. O acesso ao diretório de armazenamento não é compatível com acesso simultâneo por vários CronetEngines.

Parâmetros
value: String!

caminho para o diretório atual.

Retorna
CronetEngine.Builder!

o builder para facilitar o encadeamento.

setThreadPriority

fun setThreadPriority(priority: Int): CronetEngine.Builder!

Define a prioridade da linha de execução interna do Cronet.

Parâmetros
priority: Int

a prioridade da linha de execução interna do Cronet. Um nível de prioridade do Linux, de -20 para a prioridade de programação mais alta a 19 para a mais baixa. Para mais informações sobre valores, consulte os valores setThreadPriority e THREAD_PRIORITY_*.

Retorna
CronetEngine.Builder!

o builder para facilitar o encadeamento.

setUserAgent

fun setUserAgent(userAgent: String!): CronetEngine.Builder!

Substitui o cabeçalho User-Agent em todas as solicitações. Um cabeçalho User-Agent definido explicitamente (usando addHeader) vai substituir um valor definido usando essa função.

Parâmetros
userAgent: String!

a string User-Agent a ser usada em todas as solicitações.

Retorna
CronetEngine.Builder!

o builder para facilitar o encadeamento.

Propriedades protegidas

mParsedExperimentalOptions

protected val mParsedExperimentalOptionsJSONObject!

Representação JSON das opções experimentais.