CronetEngine.Builder

public 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

static final int

Configuração para desativar o cache HTTP.

static final int

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

static final int

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

static final int

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

Campos protegidos

JSONObject

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

Construtores públicos

Builder(Context context)

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

Métodos públicos

CronetEngine.Builder
addPublicKeyPins(
    String hostName,
    Set<byte[]> pinsSha256,
    boolean includeSubdomains,
    Date expirationDate
)

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

CronetEngine.Builder
addQuicHint(String host, int port, int alternatePort)

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

CronetEngine

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

CronetEngine.Builder
enableBrotli(boolean value)

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

CronetEngine.Builder
enableHttp2(boolean value)

Define se o protocolo HTTP/2 está ativado.

CronetEngine.Builder
enableHttpCache(int cacheMode, long maxSize)

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
enableQuic(boolean value)

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
setThreadPriority(int priority)

Esse método foi descontinuado.

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

CronetEngine.Builder
setUserAgent(String userAgent)

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

Constantes

HTTP_CACHE_DISABLED

public static final int HTTP_CACHE_DISABLED = 0

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

HTTP_CACHE_DISK

public static final int HTTP_CACHE_DISK = 3

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

public static final int HTTP_CACHE_DISK_NO_HTTP = 2

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

public static final int HTTP_CACHE_IN_MEMORY = 1

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

Campos protegidos

mParsedExperimentalOptions

protected JSONObject mParsedExperimentalOptions

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

Construtores públicos

Builder

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

Métodos públicos

addPublicKeyPins

public CronetEngine.Builder addPublicKeyPins(
    String hostName,
    Set<byte[]> pinsSha256,
    boolean includeSubdomains,
    Date expirationDate
)

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
String hostName

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.

Set<byte[]> pinsSha256

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.

boolean includeSubdomains

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

Date expirationDate

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

public CronetEngine.Builder addQuicHint(String host, int port, int alternatePort)

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
String host

nome do host do servidor compatível com QUIC.

int port

host do servidor compatível com QUIC.

int alternatePort

porta alternativa a ser usada para QUIC.

Retorna
CronetEngine.Builder

o builder para facilitar o encadeamento.

build

public CronetEngine build()

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

Retorna
CronetEngine

construído CronetEngine.

enableBrotli

public CronetEngine.Builder enableBrotli(boolean value)

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
boolean value

true para ativar o Brotli e false para desativar.

Retorna
CronetEngine.Builder

o builder para facilitar o encadeamento.

enableHttp2

public CronetEngine.Builder enableHttp2(boolean value)

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

Parâmetros
boolean value

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

Retorna
CronetEngine.Builder

o builder para facilitar o encadeamento.

enableHttpCache

public CronetEngine.Builder enableHttpCache(int cacheMode, long maxSize)

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

Parâmetros
int cacheMode

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

long maxSize

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

public CronetEngine.Builder enableNetworkQualityEstimator(boolean value)

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
boolean value

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

Retorna
CronetEngine.Builder

o builder para facilitar o encadeamento.

enablePublicKeyPinningBypassForLocalTrustAnchors

public CronetEngine.Builder enablePublicKeyPinningBypassForLocalTrustAnchors(boolean value)

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
boolean value

true para ativar o bypass e false para desativar.

Retorna
CronetEngine.Builder

o builder para facilitar o encadeamento.

enableQuic

public CronetEngine.Builder enableQuic(boolean value)

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
boolean value

true para ativar o QUIC e false para desativar.

Retorna
CronetEngine.Builder

o builder para facilitar o encadeamento.

getDefaultUserAgent

public String getDefaultUserAgent()

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
public CronetEngine.Builder setConnectionMigrationOptions(
    ConnectionMigrationOptions.Builder connectionMigrationOptionsBuilder
)

setConnectionMigrationOptions

@ConnectionMigrationOptions.Experimental
public CronetEngine.Builder setConnectionMigrationOptions(
    ConnectionMigrationOptions connectionMigrationOptions
)

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
public CronetEngine.Builder setDnsOptions(DnsOptions dnsOptions)

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
public CronetEngine.Builder setDnsOptions(DnsOptions.Builder dnsOptions)
Consulte também
setDnsOptions

setLibraryLoader

public CronetEngine.Builder setLibraryLoader(CronetEngine.Builder.LibraryLoader loader)

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

Parâmetros
CronetEngine.Builder.LibraryLoader loader

LibraryLoader a ser usado para carregar a biblioteca nativa.

Retorna
CronetEngine.Builder

o builder para facilitar o encadeamento.

setProxyOptions

public CronetEngine.Builder setProxyOptions(@NonNull ProxyOptions proxyOptions)

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
@NonNull 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
public CronetEngine.Builder setQuicOptions(QuicOptions.Builder quicOptionsBuilder)
Consulte também
setQuicOptions

setQuicOptions

@QuicOptions.Experimental
public CronetEngine.Builder setQuicOptions(QuicOptions quicOptions)

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

public CronetEngine.Builder setStoragePath(String value)

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
String value

caminho para o diretório atual.

Retorna
CronetEngine.Builder

o builder para facilitar o encadeamento.

setThreadPriority

public CronetEngine.Builder setThreadPriority(int priority)

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

Parâmetros
int priority

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

public CronetEngine.Builder setUserAgent(String userAgent)

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
String userAgent

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

Retorna
CronetEngine.Builder

o builder para facilitar o encadeamento.