UrlRequest.Builder

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

const Int

Prioridade mais alta da solicitação.

const Int

A menor prioridade de solicitação.

const Int

Prioridade baixa da solicitação.

const Int

Prioridade de solicitação muito baixa.

const Int

Prioridade média da solicitação.

Construtores públicos

Funções públicas

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

Adiciona um cabeçalho da solicitação.

UrlRequest.Builder!
addRequestAnnotation(annotation: Any!)

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(networkHandle: Long)

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(priority: Int)

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

UrlRequest.Builder!
@UrlRequest.Experimental
setRawCompressionDictionary(
    dictionarySha256Hash: ByteArray!,
    dictionary: ByteBuffer!,
    dictionaryId: String!
)

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

const val REQUEST_PRIORITY_HIGHEST = 4: Int

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

REQUEST_PRIORITY_IDLE

const val REQUEST_PRIORITY_IDLE = 0: Int

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

REQUEST_PRIORITY_LOW

const val REQUEST_PRIORITY_LOW = 2: Int

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

REQUEST_PRIORITY_LOWEST

const val REQUEST_PRIORITY_LOWEST = 1: Int

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

REQUEST_PRIORITY_MEDIUM

const val REQUEST_PRIORITY_MEDIUM = 3: Int

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

Construtores públicos

Builder

Builder()

Funções públicas

addHeader

abstract fun addHeader(header: String!, value: String!): UrlRequest.Builder!

Adiciona um cabeçalho da solicitação.

Parâmetros
header: String!

nome do cabeçalho.

value: String!

valor do cabeçalho.

Retorna
UrlRequest.Builder!

o builder para facilitar o encadeamento.

addRequestAnnotation

fun addRequestAnnotation(annotation: Any!): UrlRequest.Builder!

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
annotation: Any!

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

Retorna
UrlRequest.Builder!

o builder para facilitar o encadeamento.

allowDirectExecutor

abstract fun allowDirectExecutor(): 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.

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

fun bindToNetwork(networkHandle: Long): UrlRequest.Builder!

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
networkHandle: Long

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

abstract fun build(): UrlRequest!

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

abstract fun disableCache(): UrlRequest.Builder!

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

abstract fun setHttpMethod(method: String!): UrlRequest.Builder!

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
method: String!

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

Retorna
UrlRequest.Builder!

o builder para facilitar o encadeamento.

setPriority

abstract fun setPriority(priority: Int): UrlRequest.Builder!

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
priority: Int

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

Retorna
UrlRequest.Builder!

o builder para facilitar o encadeamento.

setRawCompressionDictionary

@UrlRequest.Experimental
fun setRawCompressionDictionary(
    dictionarySha256Hash: ByteArray!,
    dictionary: ByteBuffer!,
    dictionaryId: String!
): UrlRequest.Builder!

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
dictionarySha256Hash: ByteArray!

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

dictionary: ByteBuffer!

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

dictionaryId: String!

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

fun setRequestFinishedListener(listener: RequestFinishedInfo.Listener!): UrlRequest.Builder!

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
listener: RequestFinishedInfo.Listener!

o listener para solicitações concluídas.

Retorna
UrlRequest.Builder!

o builder para facilitar o encadeamento.

setTrafficStatsTag

fun setTrafficStatsTag(tag: Int): UrlRequest.Builder!

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
tag: Int

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

fun setTrafficStatsUid(uid: Int): UrlRequest.Builder!

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
uid: Int

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

Retorna
UrlRequest.Builder!

o builder para facilitar o encadeamento.

setUploadDataProvider

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

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.