UrlRequest.Builder

public abstract class UrlRequest.Builder


Конструктор для запросов UrlRequest . Позволяет настраивать запросы перед их созданием с помощью build . Конструктор можно создать, вызвав newUrlRequestBuilder .

Краткое содержание

Константы

static final int

Запрос имеет наивысший приоритет.

static final int

Запрос имеет самый низкий приоритет.

static final int

Низкий приоритет запроса.

static final int

Очень низкий приоритет запроса.

static final int

Средний приоритет запроса.

Государственные строители

Builder ()

Общедоступные методы

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

Добавляет заголовок запроса.

UrlRequest.Builder

Связывает объект аннотации с данным запросом.

abstract UrlRequest.Builder

Это указывает на то, что исполнители, которые этот запрос будет использовать для уведомления обратных вызовов (для UploadDataProvider и UrlRequest.Callback ), намеренно выполняют встроенное выполнение, например, directExecutor из Guava или java.util.concurrent.ThreadPoolExecutor.CallerRunsPolicy .

UrlRequest.Builder
bindToNetwork (long networkHandle)

Привязывает запрос к указанному сетевому дескриптору.

abstract UrlRequest
build ()

Создает объект UrlRequest , используя конфигурацию, заданную в этом Builder .

abstract UrlRequest.Builder

Отключает кэширование для запроса.

abstract UrlRequest.Builder

Задает метод HTTP, используемый для этого запроса.

abstract UrlRequest.Builder
setPriority (int priority)

Устанавливает приоритет запроса, который должен быть одним из значений REQUEST_PRIORITY_* .

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

Позволяет Cronet использовать указанный словарь сжатия для этого запроса.

UrlRequest.Builder

Устанавливает обработчик событий, который вызывается после возврата из onCanceled() , onFailed() или onSucceeded() .

UrlRequest.Builder

Устанавливает тег android.net.TrafficStats для учета трафика сокета, вызванного этим запросом.

UrlRequest.Builder

Задает конкретный UID, который будет использоваться при учете трафика сокета, вызванного этим запросом.

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

Задает поставщика данных для загрузки.

Константы

НАИВЫСШИЙ ПРИОРИТЕТ ЗАПРОСА

public static final int REQUEST_PRIORITY_HIGHEST = 4

Наивысший приоритет запроса. Передается в setPriority .

REQUEST_PRIORITY_IDLE

public static final int REQUEST_PRIORITY_IDLE = 0

Наименьший приоритет запроса. Передается в setPriority .

Низкий_приоритет_запроса

public static final int REQUEST_PRIORITY_LOW = 2

Низкий приоритет запроса. Передаётся в setPriority .

REQUEST_PRIORITY_LOWEST

public static final int REQUEST_PRIORITY_LOWEST = 1

Очень низкий приоритет запроса. Передано в setPriority .

ЗАПРОС_СРЕДНИЙ_ПРИОРИТЕТ_ВЫБОРА

public static final int REQUEST_PRIORITY_MEDIUM = 3

Средний приоритет запроса. Передается в setPriority . Это приоритет по умолчанию, присваиваемый запросу.

Государственные строители

Строитель

public Builder()

Общедоступные методы

addHeader

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

Добавляет заголовок запроса.

Параметры
String header

Название заголовка.

String value

значение заголовка.

Возвраты
UrlRequest.Builder

строитель для облегчения создания цепочек.

addRequestAnnotation

public UrlRequest.Builder addRequestAnnotation(Object annotation)

Связывает объект аннотации с этим запросом. Можно добавить более одного объекта. Передается в RequestFinishedInfo.Listener , см. getAnnotations .

Параметры
Object annotation

Объект, который будет передан в RequestFinishedInfo.Listener вместе с RequestFinishedInfo .

Возвраты
UrlRequest.Builder

строитель для облегчения создания цепочек.

allowDirectExecutor

public abstract UrlRequest.Builder allowDirectExecutor()

Это указывает на то, что исполнители, которые этот запрос будет использовать для уведомления обратных вызовов (для UploadDataProvider и UrlRequest.Callback ), намеренно выполняют встроенное выполнение, например, directExecutor из Guava или java.util.concurrent.ThreadPoolExecutor.CallerRunsPolicy .

Внимание: Этот параметр позволяет легко случайно заблокировать сетевой поток. Его не следует использовать, если ваши функции обратного вызова выполняют операции ввода-вывода на диске, получают блокировки или вызывают другой код, который вы не контролируете и не проверяете должным образом.

bindToNetwork

public UrlRequest.Builder bindToNetwork(long networkHandle)

Привязывает запрос к указанному сетевому дескриптору. Cronet отправит этот запрос только через сеть, связанную с этим дескриптором. Если сеть отключится, запрос завершится неудачей; точная ошибка будет зависеть от стадии обработки запроса в момент отключения сети. Сетевые дескрипторы можно получить с помощью Network#getNetworkHandle . Доступно только начиная с Android Marshmallow.

Параметры
long networkHandle

Сетевой дескриптор, к которому будет привязан запрос. Укажите UNBIND_NETWORK_HANDLE , чтобы отменить привязку.

Возвраты
UrlRequest.Builder

строитель для облегчения создания цепочек.

строить

public abstract UrlRequest build()

Создает объект UrlRequest , используя конфигурацию в этом Builder . Возвращенный UrlRequest затем можно запустить, вызвав start .

Возвраты
UrlRequest

Создан UrlRequest с использованием конфигурации, заданной в этом Builder .

disableCache

public abstract UrlRequest.Builder disableCache()

Отключает кэширование для запроса. Если контекст не настроен на использование кэша, этот вызов не окажет никакого эффекта.

Возвраты
UrlRequest.Builder

строитель для облегчения создания цепочек.

setHttpMethod

public abstract UrlRequest.Builder setHttpMethod(String method)

Задает метод HTTP, используемый для этого запроса.

Если этот метод не вызывается, по умолчанию используется метод "GET", если запрос не содержит тела, или "POST", если оно есть.

Параметры
String method

"GET", "HEAD", "DELETE", "POST" или "PUT".

Возвраты
UrlRequest.Builder

строитель для облегчения создания цепочек.

установить приоритет

public abstract UrlRequest.Builder setPriority(int priority)

Устанавливает приоритет запроса, который должен быть одним из значений REQUEST_PRIORITY_* . Если этот метод не вызывается, запросу присваивается приоритет REQUEST_PRIORITY_MEDIUM .

Параметры
int priority

Приоритет запроса должен быть равен одному из значений REQUEST_PRIORITY_* .

Возвраты
UrlRequest.Builder

строитель для облегчения создания цепочек.

setRawCompressionDictionary

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

Позволяет Cronet использовать указанный словарь сжатия для этого запроса. При указании Cronet может сообщить серверу о доступности указанного словаря сжатия. Для того чтобы это имело какой-либо эффект, CronetEngine, который будет выполнять этот запрос, должен быть настроен на включение схемы сжатия, поддерживающей внешние словари. Это частично реализует draft-ietf-httpbis-compression-dictionary внутри Cronet. Cronet не будет напрямую обрабатывать заголовки ответа "Use-As-Dictionary", вместо этого он будет полагаться на встраиваемый модуль, который должен: либо обработать их и позже вызвать UrlRequest.Builder#setCompressionDictionary для запросов, соответствующих правилам Use-As-Dictionary; либо получить словари сжатия с помощью какого-либо другого внеполосного механизма и позже вызвать UrlRequest.Builder#setCompressionDictionary. Cronet будет интерпретировать словарь как соответствующий только этому URL-запросу. Если указанный запрос перенаправляется, и встраиваемый модуль решает следовать перенаправлению, словарь будет соответствовать также новому URL-адресу.

Параметры
byte[] dictionarySha256Hash

SHA-256 указанного словаря сжатия.

ByteBuffer dictionary

Словарь сжатия, который Cronet может использовать для этого URL-запроса. Это должен быть непосредственно объект ByteBuffer.

String dictionaryId

Необязательный идентификатор, связанный с этим словарем, должен быть пустой строкой, если он отсутствует. Если он присутствует, он будет отправлен через заголовок Dictionary-ID. Вам потребуется указать его, если сервер указал идентификатор в своем ответе "Use-As-Dictionary".

Возвраты
UrlRequest.Builder

строитель для облегчения создания цепочек.

setRequestFinishedListener

public UrlRequest.Builder setRequestFinishedListener(RequestFinishedInfo.Listener listener)

Устанавливает обработчик событий, который вызывается после возврата из onCanceled() , onFailed() или onSucceeded() .

Слушатель вызывается с информацией о завершении запроса к объекту java.util.concurrent.Executor , предоставленному методом getExecutor() .

Параметры
RequestFinishedInfo.Listener listener

слушатель завершенных запросов.

Возвраты
UrlRequest.Builder

строитель для облегчения создания цепочек.

setTrafficStatsTag

public UrlRequest.Builder setTrafficStatsTag(int tag)

Устанавливает тег android.net.TrafficStats , используемый для учета трафика сокетов, вызванного этим запросом. Дополнительную информацию см. в описании android.net.TrafficStats . Если тег не установлен (например, этот метод не вызывается), Android учитывает трафик сокетов, вызванный этим запросом, как если бы значение тега было равно 0.

ПРИМЕЧАНИЕ: Установка тега запрещает совместное использование сокетов запросами с другими тегами, что может негативно сказаться на производительности, поскольку препятствует совместному использованию соединений. Другими словами, использование мультиплексированных сокетов (например, HTTP/2 и QUIC) будет разрешено только в том случае, если все запросы имеют один и тот же тег сокета.

Параметры
int tag

Значение тега, используемое при учете трафика сокета, вызванного этим запросом. Теги в диапазоне от 0xFFFFFF00 до 0xFFFFFFFF зарезервированы и используются внутри системных служб, таких как android.app.DownloadManager при обработке трафика от имени приложения.

Возвраты
UrlRequest.Builder

строитель для облегчения создания цепочек.

setTrafficStatsUid

public UrlRequest.Builder setTrafficStatsUid(int uid)

Устанавливает конкретный UID для учета трафика сокета, вызванного этим запросом. Дополнительную информацию см. в android.net.TrafficStats . Предназначен для использования при выполнении операции от имени другого приложения. Вызывающая сторона должна иметь разрешение MODIFY_NETWORK_ACCOUNTING . По умолчанию трафик приписывается UID вызывающей стороны.

ПРИМЕЧАНИЕ: Установка UID запрещает совместное использование сокетов запросами с другими UID, что может негативно сказаться на производительности, поскольку препятствует совместному использованию соединений. Другими словами, использование мультиплексированных сокетов (например, HTTP/2 и QUIC) будет разрешено только в том случае, если все запросы имеют один и тот же установленный UID.

Параметры
int uid

UID для присвоения идентификатора трафику сокета, вызванному этим запросом.

Возвраты
UrlRequest.Builder

строитель для облегчения создания цепочек.

setUploadDataProvider

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

Задает поставщика данных для загрузки. Если метод не указан явно, переключается на "POST". При запуске запроса будет выброшено исключение, если заголовок Content-Type не установлен.

Параметры
UploadDataProvider uploadDataProvider

отвечает за предоставление данных для загрузки.

Executor executor

Все методы uploadDataProvider будут вызываться с помощью этого Executor . В качестве опции может использоваться тот же Executor что и сам запрос.

Возвраты
UrlRequest.Builder

строитель для облегчения создания цепочек.