UrlRequest.Builder

public abstract class UrlRequest.Builder


Es el compilador de UrlRequest. Permite configurar solicitudes antes de construirlas con build. El compilador se puede crear llamando a newUrlRequestBuilder.

Resumen

Constantes

static final int

Es la prioridad más alta de la solicitud.

static final int

Es la prioridad de solicitud más baja.

static final int

Prioridad de solicitud baja.

static final int

Prioridad de solicitud muy baja.

static final int

Prioridad media de la solicitud.

Constructores públicos

Métodos públicos

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

Agrega un encabezado de solicitud.

UrlRequest.Builder

Asocia el objeto de anotación con esta solicitud.

abstract UrlRequest.Builder

Indica que los ejecutores que usará esta solicitud para notificar devoluciones de llamada (para UploadDataProviders y UrlRequest.Callbacks) realizan intencionalmente la ejecución intercalada, como directExecutor de Guava o java.util.concurrent.ThreadPoolExecutor.CallerRunsPolicy.

UrlRequest.Builder
bindToNetwork(long networkHandle)

Vincula la solicitud al identificador de red especificado.

abstract UrlRequest

Crea un UrlRequest con la configuración de este Builder.

abstract UrlRequest.Builder

Inhabilita la caché para la solicitud.

abstract UrlRequest.Builder

Establece el verbo del método HTTP que se usará para esta solicitud.

abstract UrlRequest.Builder
setPriority(int priority)

Establece la prioridad de la solicitud, que debe ser uno de los valores de REQUEST_PRIORITY_*.

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

Permite que Cronet use el diccionario de compresión especificado para esta solicitud.

UrlRequest.Builder

Establece un objeto de escucha que se invoca después de que se devuelven onCanceled(), onFailed() o onSucceeded().

UrlRequest.Builder

Establece la etiqueta android.net.TrafficStats que se usará cuando se contabilice el tráfico de sockets causado por esta solicitud.

UrlRequest.Builder

Establece el UID específico que se usará cuando se contabilice el tráfico de sockets causado por esta solicitud.

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

Establece el proveedor de datos de carga.

Constantes

REQUEST_PRIORITY_HIGHEST

public static final int REQUEST_PRIORITY_HIGHEST = 4

Es la prioridad más alta de la solicitud. Se pasó a setPriority.

REQUEST_PRIORITY_IDLE

public static final int REQUEST_PRIORITY_IDLE = 0

Es la prioridad de solicitud más baja. Se pasó a setPriority.

REQUEST_PRIORITY_LOW

public static final int REQUEST_PRIORITY_LOW = 2

Prioridad de solicitud baja. Se pasó a setPriority.

REQUEST_PRIORITY_LOWEST

public static final int REQUEST_PRIORITY_LOWEST = 1

Prioridad de solicitud muy baja. Se pasó a setPriority.

REQUEST_PRIORITY_MEDIUM

public static final int REQUEST_PRIORITY_MEDIUM = 3

Prioridad media de la solicitud. Se pasó a setPriority. Esta es la prioridad predeterminada que se le asigna a la solicitud.

Constructores públicos

Builder

public Builder()

Métodos públicos

addHeader

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

Agrega un encabezado de solicitud.

Parámetros
String header

Nombre del encabezado.

String value

valor del encabezado.

Muestra
UrlRequest.Builder

el compilador para facilitar el encadenamiento.

addRequestAnnotation

public UrlRequest.Builder addRequestAnnotation(Object annotation)

Asocia el objeto de anotación con esta solicitud. Puedes agregar más de uno. Se pasa a un RequestFinishedInfo.Listener. Consulta getAnnotations.

Parámetros
Object annotation

Un objeto para pasar al RequestFinishedInfo.Listener con un RequestFinishedInfo.

Muestra
UrlRequest.Builder

el compilador para facilitar el encadenamiento.

allowDirectExecutor

public abstract UrlRequest.Builder allowDirectExecutor()

Indica que los ejecutores que usará esta solicitud para notificar devoluciones de llamada (para UploadDataProviders y UrlRequest.Callbacks) realizan intencionalmente la ejecución intercalada, como directExecutor de Guava o java.util.concurrent.ThreadPoolExecutor.CallerRunsPolicy.

Advertencia: Con esta opción, es fácil bloquear accidentalmente el subproceso de red. No se debe usar si tus devoluciones de llamada realizan E/S de disco, adquieren bloqueos o llaman a otro código que no controlas ni auditas cuidadosamente.

bindToNetwork

public UrlRequest.Builder bindToNetwork(long networkHandle)

Vincula la solicitud al identificador de red especificado. Cronet enviará esta solicitud solo a través de la red asociada a este identificador. Si se desconecta esta red, la solicitud fallará. El error exacto dependerá de la etapa de procesamiento de la solicitud en la que se desconecte la red. Los identificadores de red se pueden obtener a través de Network#getNetworkHandle. Solo disponible a partir de Android Marshmallow.

Parámetros
long networkHandle

Es el identificador de red al que se debe vincular la solicitud. Especifica UNBIND_NETWORK_HANDLE para desvincular.

Muestra
UrlRequest.Builder

el compilador para facilitar el encadenamiento.

build

public abstract UrlRequest build()

Crea un UrlRequest con la configuración de este Builder. Luego, se puede iniciar el UrlRequest devuelto llamando a start.

Muestra
UrlRequest

UrlRequest construido con la configuración dentro de este Builder.

Inhabilitar la caché

public abstract UrlRequest.Builder disableCache()

Inhabilita la caché para la solicitud. Si el contexto no está configurado para usar la caché, esta llamada no tendrá efecto.

Muestra
UrlRequest.Builder

el compilador para facilitar el encadenamiento.

setHttpMethod

public abstract UrlRequest.Builder setHttpMethod(String method)

Establece el verbo del método HTTP que se usará para esta solicitud.

El valor predeterminado cuando no se llama a este método es "GET" si la solicitud no tiene cuerpo o "POST" si lo tiene.

Parámetros
String method

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

Muestra
UrlRequest.Builder

el compilador para facilitar el encadenamiento.

setPriority

public abstract UrlRequest.Builder setPriority(int priority)

Establece la prioridad de la solicitud, que debe ser uno de los valores de REQUEST_PRIORITY_*. La solicitud recibe prioridad REQUEST_PRIORITY_MEDIUM si no se llama a este método.

Parámetros
int priority

Es la prioridad de la solicitud, que debe ser uno de los valores de REQUEST_PRIORITY_*.

Muestra
UrlRequest.Builder

el compilador para facilitar el encadenamiento.

setRawCompressionDictionary

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

Permite que Cronet use el diccionario de compresión especificado para esta solicitud. Cuando se especifica, Cronet puede indicarle al servidor la disponibilidad de dicho diccionario de compresión. Para que esto surta efecto, el objeto CronetEngine que ejecutará esta solicitud debe haberse configurado para habilitar un esquema de compresión que admita diccionarios externos. Esto implementa parcialmente draft-ietf-httpbis-compression-dictionary dentro de Cronet. Cronet no controlará directamente los encabezados de respuesta "Use-As-Dictionary", sino que dependerá del incorporador para que los controle y, luego, llame a UrlRequest.Builder#setCompressionDictionary para las solicitudes que coincidan con las reglas de Use-As-Dictionary, o bien para que recupere diccionarios de compresión a través de algún otro mecanismo fuera de banda y, luego, llame a UrlRequest.Builder#setCompressionDictionary. Cronet interpretará el diccionario como si solo coincidiera con este UrlRequest. Si se redirecciona la solicitud y el sitio que incorpora el contenido decide seguir el redireccionamiento, el diccionario también coincidirá con la URL nueva.

Parámetros
byte[] dictionarySha256Hash

Es el SHA-256 del diccionario de compresión especificado.

ByteBuffer dictionary

Es el diccionario de compresión que Cronet puede usar para este objeto UrlRequest. Debe ser un ByteBuffer directo.

String dictionaryId

Es el ID opcional asociado a este diccionario. Debe ser una cadena vacía si falta. Si está presente, se enviará a través del encabezado Dictionary-ID. Deberás especificarlo si el servidor especificó un ID en su respuesta "Use-As-Dictionary".

Muestra
UrlRequest.Builder

el compilador para facilitar el encadenamiento.

setRequestFinishedListener

public UrlRequest.Builder setRequestFinishedListener(RequestFinishedInfo.Listener listener)

Establece un objeto de escucha que se invoca después de que se devuelven onCanceled(), onFailed() o onSucceeded().

Se invoca al objeto de escucha con la información de solicitud finalizada en un java.util.concurrent.Executor proporcionado por getExecutor().

Parámetros
RequestFinishedInfo.Listener listener

Es el objeto de escucha para las solicitudes finalizadas.

Muestra
UrlRequest.Builder

el compilador para facilitar el encadenamiento.

setTrafficStatsTag

public UrlRequest.Builder setTrafficStatsTag(int tag)

Establece la etiqueta android.net.TrafficStats que se usará cuando se contabilice el tráfico de sockets causado por esta solicitud. Consulta android.net.TrafficStats para obtener más información. Si no se establece ninguna etiqueta (p.ej., no se llama a este método), Android contabiliza el tráfico de sockets causado por esta solicitud como si el valor de la etiqueta se hubiera establecido en 0.

NOTA: Establecer una etiqueta no permite compartir sockets con solicitudes que tengan otras etiquetas, lo que puede afectar negativamente el rendimiento, ya que se prohíbe el uso compartido de conexiones. En otras palabras, el uso de sockets multiplexados (p.ej., HTTP/2 y QUIC) solo se permitirá si todas las solicitudes tienen la misma etiqueta de socket.

Parámetros
int tag

Es el valor de la etiqueta que se usa cuando se contabiliza el tráfico de sockets causado por esta solicitud. Las etiquetas entre 0xFFFFFF00 y 0xFFFFFFFF están reservadas y los servicios del sistema, como android.app.DownloadManager, las usan de forma interna cuando realizan tráfico en nombre de una aplicación.

Muestra
UrlRequest.Builder

el compilador para facilitar el encadenamiento.

setTrafficStatsUid

public UrlRequest.Builder setTrafficStatsUid(int uid)

Establece el UID específico que se usará cuando se contabilice el tráfico de sockets causado por esta solicitud. Consulta android.net.TrafficStats para obtener más información. Se diseñó para usarse cuando se realiza una operación en nombre de otra aplicación. El emisor debe tener el permiso MODIFY_NETWORK_ACCOUNTING. De forma predeterminada, el tráfico se atribuye al UID de la entidad que realiza la llamada.

NOTA: Establecer un UID no permite compartir sockets con solicitudes que tengan otros UID, lo que puede afectar negativamente el rendimiento, ya que se prohíbe el uso compartido de conexiones. En otras palabras, el uso de sockets multiplexados (p.ej., HTTP/2 y QUIC) solo se permitirá si todas las solicitudes tienen establecido el mismo UID.

Parámetros
int uid

Es el UID para atribuir el tráfico de sockets causado por esta solicitud.

Muestra
UrlRequest.Builder

el compilador para facilitar el encadenamiento.

setUploadDataProvider

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

Establece el proveedor de datos de carga. Cambia el método a "POST" si no se establece de forma explícita. Si no se configura un encabezado Content-Type, se arrojará una excepción cuando se inicie la solicitud.

Parámetros
UploadDataProvider uploadDataProvider

es responsable de proporcionar los datos de carga.

Executor executor

Todos los métodos uploadDataProvider se invocarán con este Executor. Opcionalmente, puede ser el mismo Executor que usa la solicitud.

Muestra
UrlRequest.Builder

el compilador para facilitar el encadenamiento.