UrlRequest.Builder

public abstract class UrlRequest.Builder


Builder para UrlRequests. Permite configurar solicitações antes de construí-las com build. O builder pode ser criado chamando newUrlRequestBuilder.

Resumo

Constantes

static final int

Prioridade mais alta da solicitação.

static final int

A menor prioridade de solicitação.

static final int

Prioridade baixa da solicitação.

static final int

Prioridade de solicitação muito baixa.

static final int

Prioridade média da solicitação.

Construtores públicos

Métodos públicos

abstract UrlRequest.Builder
addHeader(String header, String value)

Adiciona um cabeçalho da solicitação.

UrlRequest.Builder

Associa o objeto de anotação a esta solicitação.

abstract UrlRequest.Builder

Marca que os executores que esta solicitação usará para notificar callbacks (para UploadDataProviders e UrlRequest.Callbacks) estão realizando a execução in-line intencionalmente, como o directExecutor do Guava ou java.util.concurrent.ThreadPoolExecutor.CallerRunsPolicy.

UrlRequest.Builder
bindToNetwork(long networkHandle)

Vincula a solicitação ao identificador de rede especificado.

abstract UrlRequest

Cria um UrlRequest usando a configuração neste Builder.

abstract UrlRequest.Builder

Desativa o cache para a solicitação.

abstract UrlRequest.Builder

Define o verbo do método HTTP a ser usado para esta solicitação.

abstract UrlRequest.Builder
setPriority(int priority)

Define a prioridade da solicitação, que precisa ser um dos valores REQUEST_PRIORITY_*.

UrlRequest.Builder
@UrlRequest.Experimental
setRawCompressionDictionary(
    byte[] dictionarySha256Hash,
    ByteBuffer dictionary,
    String dictionaryId
)

Permite que a Cronet use o dicionário de compactação especificado para esta solicitação.

UrlRequest.Builder

Define um listener que é invocado após o retorno de onCanceled(), onFailed() ou onSucceeded().

UrlRequest.Builder

Define a tag android.net.TrafficStats a ser usada ao contabilizar o tráfego de soquete causado por esta solicitação.

UrlRequest.Builder

Define um UID específico para usar ao contabilizar o tráfego de soquete causado por esta solicitação.

abstract UrlRequest.Builder
setUploadDataProvider(
    UploadDataProvider uploadDataProvider,
    Executor executor
)

Define o provedor de dados de upload.

Constantes

REQUEST_PRIORITY_HIGHEST

public static final int REQUEST_PRIORITY_HIGHEST = 4

Prioridade mais alta da solicitação. Transmitido para setPriority.

REQUEST_PRIORITY_IDLE

public static final int REQUEST_PRIORITY_IDLE = 0

A menor prioridade de solicitação. Transmitido para setPriority.

REQUEST_PRIORITY_LOW

public static final int REQUEST_PRIORITY_LOW = 2

Prioridade baixa da solicitação. Transmitido para setPriority.

REQUEST_PRIORITY_LOWEST

public static final int REQUEST_PRIORITY_LOWEST = 1

Prioridade de solicitação muito baixa. Transmitido para setPriority.

REQUEST_PRIORITY_MEDIUM

public static final int REQUEST_PRIORITY_MEDIUM = 3

Prioridade média da solicitação. Transmitido para setPriority. Essa é a prioridade padrão atribuída à solicitação.

Construtores públicos

Builder

public Builder()

Métodos públicos

addHeader

public abstract UrlRequest.Builder addHeader(String header, String value)

Adiciona um cabeçalho da solicitação.

Parâmetros
String header

nome do cabeçalho.

String value

valor do cabeçalho.

Retorna
UrlRequest.Builder

o builder para facilitar o encadeamento.

addRequestAnnotation

public UrlRequest.Builder addRequestAnnotation(Object annotation)

Associa o objeto de anotação a esta solicitação. É possível adicionar mais de um. Transmitido para um RequestFinishedInfo.Listener, consulte getAnnotations.

Parâmetros
Object annotation

um objeto a ser transmitido para o RequestFinishedInfo.Listener com um RequestFinishedInfo.

Retorna
UrlRequest.Builder

o builder para facilitar o encadeamento.

allowDirectExecutor

public abstract UrlRequest.Builder allowDirectExecutor()

Marca que os executores que esta solicitação usará para notificar callbacks (para UploadDataProviders e UrlRequest.Callbacks) estão realizando a execução in-line intencionalmente, como o directExecutor do Guava ou java.util.concurrent.ThreadPoolExecutor.CallerRunsPolicy.

Aviso:essa opção facilita o bloqueio acidental da linha de execução da rede. Não use se seus callbacks realizarem E/S de disco, adquirirem bloqueios ou chamarem outro código que você não controla e audita com cuidado.

bindToNetwork

public UrlRequest.Builder bindToNetwork(long networkHandle)

Vincula a solicitação ao identificador de rede especificado. A Cronet vai enviar essa solicitação apenas usando a rede associada a esse identificador. Se essa rede for desconectada, a solicitação vai falhar. O erro exato vai depender da etapa de processamento da solicitação quando a rede for desconectada. Os identificadores de rede podem ser obtidos usando Network#getNetworkHandle. Disponível apenas a partir do Android Marshmallow.

Parâmetros
long networkHandle

o identificador de rede para vincular a solicitação. Especifique UNBIND_NETWORK_HANDLE para desvincular.

Retorna
UrlRequest.Builder

o builder para facilitar o encadeamento.

build

public abstract UrlRequest build()

Cria um UrlRequest usando a configuração neste Builder. O UrlRequest retornado pode ser iniciado chamando start.

Retorna
UrlRequest

construído UrlRequest usando a configuração neste Builder.

disableCache

public abstract UrlRequest.Builder disableCache()

Desativa o cache para a solicitação. Se o contexto não estiver configurado para usar o cache, essa chamada não terá efeito.

Retorna
UrlRequest.Builder

o builder para facilitar o encadeamento.

setHttpMethod

public abstract UrlRequest.Builder setHttpMethod(String method)

Define o verbo do método HTTP a ser usado para esta solicitação.

O padrão quando esse método não é chamado é "GET" se a solicitação não tiver um corpo ou "POST" se tiver.

Parâmetros
String method

"GET", "HEAD", "DELETE", "POST" ou "PUT".

Retorna
UrlRequest.Builder

o builder para facilitar o encadeamento.

setPriority

public abstract UrlRequest.Builder setPriority(int priority)

Define a prioridade da solicitação, que precisa ser um dos valores REQUEST_PRIORITY_*. A solicitação recebe prioridade REQUEST_PRIORITY_MEDIUM se esse método não for chamado.

Parâmetros
int priority

prioridade da solicitação, que precisa ser um dos valores REQUEST_PRIORITY_*.

Retorna
UrlRequest.Builder

o builder para facilitar o encadeamento.

setRawCompressionDictionary

@UrlRequest.Experimental
public UrlRequest.Builder setRawCompressionDictionary(
    byte[] dictionarySha256Hash,
    ByteBuffer dictionary,
    String dictionaryId
)

Permite que a Cronet use o dicionário de compactação especificado para esta solicitação. Quando especificado, o Cronet pode sinalizar ao servidor a disponibilidade do dicionário de compactação. Para que isso tenha efeito, o CronetEngine que vai executar essa solicitação precisa ter sido configurado para ativar um esquema de compactação compatível com dicionários externos. Isso implementa parcialmente o draft-ietf-httpbis-compression-dictionary no Cronet. A Cronet não processa diretamente os cabeçalhos de resposta "Use-As-Dictionary ". Em vez disso, ela depende do incorporador para: processar e chamar UrlRequest.Builder#setCompressionDictionary para solicitações que correspondem às regras de"Use-As-Dictionary" ou buscar dicionários de compactação por algum outro mecanismo fora da banda e chamar UrlRequest.Builder#setCompressionDictionary. A Cronet vai interpretar o dicionário como correspondente apenas a essa UrlRequest. Se a solicitação for redirecionada e o incorporador decidir seguir o redirecionamento, o dicionário também vai corresponder ao novo URL.

Parâmetros
byte[] dictionarySha256Hash

o SHA-256 do dicionário de compactação especificado.

ByteBuffer dictionary

o dicionário de compactação que a Cronet pode usar para essa UrlRequest. Precisa ser um ByteBuffer direto.

String dictionaryId

O ID opcional associado a este dicionário. Precisa ser uma string vazia se estiver faltando. Se presente, ele será enviado pelo cabeçalho Dictionary-ID. É necessário especificar isso se o servidor tiver especificado um ID na resposta "Use-As-Dictionary".

Retorna
UrlRequest.Builder

o builder para facilitar o encadeamento.

setRequestFinishedListener

public UrlRequest.Builder setRequestFinishedListener(RequestFinishedInfo.Listener listener)

Define um listener que é invocado após o retorno de onCanceled(), onFailed() ou onSucceeded().

O listener é invocado com as informações de solicitação concluída em um java.util.concurrent.Executor fornecido por getExecutor().

Parâmetros
RequestFinishedInfo.Listener listener

o listener para solicitações concluídas.

Retorna
UrlRequest.Builder

o builder para facilitar o encadeamento.

setTrafficStatsTag

public UrlRequest.Builder setTrafficStatsTag(int tag)

Define a tag android.net.TrafficStats a ser usada ao contabilizar o tráfego de soquete causado por esta solicitação. Consulte os android.net.TrafficStats para mais informações. Se nenhuma tag for definida (por exemplo, se esse método não for chamado), o Android vai considerar o tráfego de soquete causado por essa solicitação como se o valor da tag fosse definido como 0.

OBSERVAÇÃO:definir uma tag impede o compartilhamento de sockets com solicitações de outras tags, o que pode afetar negativamente o desempenho ao proibir o compartilhamento de conexões. Em outras palavras, o uso de sockets multiplexados (por exemplo, HTTP/2 e QUIC) só será permitido se todas as solicitações tiverem a mesma tag de socket.

Parâmetros
int tag

o valor da tag usado ao contabilizar o tráfego de soquete causado por esta solicitação. Tags entre 0xFFFFFF00 e 0xFFFFFFFF são reservadas e usadas internamente por serviços do sistema, como android.app.DownloadManager, ao realizar tráfego em nome de um aplicativo.

Retorna
UrlRequest.Builder

o builder para facilitar o encadeamento.

setTrafficStatsUid

public UrlRequest.Builder setTrafficStatsUid(int uid)

Define um UID específico para usar ao contabilizar o tráfego de soquete causado por esta solicitação. Consulte android.net.TrafficStats para mais informações. Projetado para uso ao realizar uma operação em nome de outro aplicativo. O autor da chamada precisa ter a permissão MODIFY_NETWORK_ACCOUNTING. Por padrão, o tráfego é atribuído ao UID do caller.

OBSERVAÇÃO:definir um UID impede o compartilhamento de sockets com solicitações de outros UIDs, o que pode afetar negativamente o desempenho ao proibir o compartilhamento de conexões. Em outras palavras, o uso de sockets multiplexados (por exemplo, HTTP/2 e QUIC) só será permitido se todas as solicitações tiverem o mesmo UID definido.

Parâmetros
int uid

o UID para atribuir o tráfego de soquete causado por essa solicitação.

Retorna
UrlRequest.Builder

o builder para facilitar o encadeamento.

setUploadDataProvider

public abstract UrlRequest.Builder setUploadDataProvider(
    UploadDataProvider uploadDataProvider,
    Executor executor
)

Define o provedor de dados de upload. Muda o método para "POST" se não estiver definido explicitamente. Iniciar a solicitação vai gerar uma exceção se um cabeçalho Content-Type não estiver definido.

Parâmetros
UploadDataProvider uploadDataProvider

responsável por fornecer os dados de upload.

Executor executor

Todos os métodos uploadDataProvider serão invocados usando esse Executor. Pode ser o mesmo Executor que a própria solicitação está usando.

Retorna
UrlRequest.Builder

o builder para facilitar o encadeamento.