UrlRequest.Builder

public static abstract class UrlRequest.Builder extends Object

UrlRequest 的构建器。允许在通过 build() 构建请求之前对其进行配置。可通过调用 CronetEngine.newUrlRequestBuilder(String, UrlRequest.Callback, Executor) 创建此构建器。

常量摘要

int REQUEST_PRIORITY_HIGHEST 最高的请求优先级。
int REQUEST_PRIORITY_IDLE 最低的请求优先级。
int REQUEST_PRIORITY_LOW 低的请求优先级。
int REQUEST_PRIORITY_LOWEST 非常低的请求优先级。
int REQUEST_PRIORITY_MEDIUM 中等的请求优先级。

公共构造函数摘要

公共方法摘要

abstract UrlRequest.Builder
addHeader(String header, String value)
添加请求头。
UrlRequest.Builder
addRequestAnnotation(Object annotation)
将注解对象与此请求关联。
abstract UrlRequest.Builder
allowDirectExecutor()
标记此请求用于通知回调(对于 UploadDataProviderUrlRequest.Callback)的执行器有意执行内联执行,如 Guava 的 directExecutor 或 ThreadPoolExecutor.CallerRunsPolicy
abstract UrlRequest
build()
使用此 UrlRequest.Builder 中的配置创建 UrlRequest。然后可以通过调用 UrlRequest.start() 启动返回的 UrlRequest
abstract UrlRequest.Builder
disableCache()
为此请求停用缓存。
abstract UrlRequest.Builder
setHttpMethod(String method)
为此请求设置要使用的 HTTP 方法动词。
abstract UrlRequest.Builder
setPriority(int priority)
设置请求的优先级,优先级应为 REQUEST_PRIORITY_* 值之一。
UrlRequest.Builder
setRequestFinishedListener(RequestFinishedInfo.Listener listener)
设置监听器,该监听器将在 onCanceled()onFailed()onSucceeded() 返回后调用。
UrlRequest.Builder
setTrafficStatsTag(int tag)
设置在计算此请求造成的套接字流量时使用的 TrafficStats 标签。
UrlRequest.Builder
setTrafficStatsUid(int uid)
设置在计算此请求造成的套接字流量时要使用的特定 UID。
abstract UrlRequest.Builder
setUploadDataProvider(UploadDataProvider uploadDataProvider, Executor executor)
设置上传数据提供程序。

继承方法摘要

常量

public static final int REQUEST_PRIORITY_HIGHEST

最高的请求优先级。传递给 setPriority(int)

常量值: 4

public static final int REQUEST_PRIORITY_IDLE

最低的请求优先级。传递给 setPriority(int)

常量值: 0

public static final int REQUEST_PRIORITY_LOW

低的请求优先级。传递给 setPriority(int)

常量值: 2

public static final int REQUEST_PRIORITY_LOWEST

非常低的请求优先级。传递给 setPriority(int)

常量值: 1

public static final int REQUEST_PRIORITY_MEDIUM

中等的请求优先级。传递给 setPriority(int)。这是为此请求设置的默认优先级。

常量值: 3

公共构造函数

public Builder ()

公共方法

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

添加请求头。

参数
header 请求头名称。
value 请求头值。
返回
  • 构建器,以方便链式调用。

public UrlRequest.Builder addRequestAnnotation (Object annotation)

将注解对象与此请求关联。可以添加多个。传递给 RequestFinishedInfo.Listener,详见 RequestFinishedInfo.getAnnotations()

参数
annotation 要传递给 RequestFinishedInfo.Listener 的对象,附带 RequestFinishedInfo
返回
  • 构建器,以方便链式调用。

public abstract UrlRequest.Builder allowDirectExecutor ()

标记此请求用于通知回调(对于 UploadDataProviderUrlRequest.Callback)的执行器有意执行内联执行,如 Guava 的 directExecutor 或 ThreadPoolExecutor.CallerRunsPolicy

警告:此选项很容易意外阻塞网络线程。如果您的回调执行磁盘 I/O、获取锁或调用您未仔细控制和审查的其他代码,则不应使用此选项。

public abstract UrlRequest build ()

使用此 UrlRequest.Builder 中的配置创建 UrlRequest。然后可以通过调用 UrlRequest.start() 启动返回的 UrlRequest

返回

public abstract UrlRequest.Builder disableCache ()

为此请求停用缓存。如果上下文未设置为使用缓存,此调用无效。

返回
  • 构建器,以方便链式调用。

public abstract UrlRequest.Builder setHttpMethod (String method)

为此请求设置要使用的 HTTP 方法动词。

如果未调用此方法,则默认值为:如果请求没有请求体,则为“GET”;如果请求有请求体,则为“POST”。

参数
method “GET”、“HEAD”、“DELETE”、“POST”或“PUT”。
返回
  • 构建器,以方便链式调用。

public abstract UrlRequest.Builder setPriority (int priority)

设置请求的优先级,优先级应为 REQUEST_PRIORITY_* 值之一。如果未调用此方法,则为此请求设置的优先级为 REQUEST_PRIORITY_MEDIUM

参数
priority 请求的优先级,应为 REQUEST_PRIORITY_* 值之一。
返回
  • 构建器,以方便链式调用。

public UrlRequest.Builder setRequestFinishedListener (RequestFinishedInfo.Listener listener)

设置监听器,该监听器将在 onCanceled()onFailed()onSucceeded() 返回后调用。

监听器将在 Executor 上调用,该 ExecutorgetExecutor() 提供,其中包含请求完成信息。

参数
listener 请求完成的监听器。
返回
  • 构建器,以方便链式调用。

public UrlRequest.Builder setTrafficStatsTag (int tag)

设置在计算此请求造成的套接字流量时使用的 TrafficStats 标签。详见 TrafficStats。如果未设置标签(例如,未调用此方法),则 Android 计算此请求造成的套接字流量,如同标签值设置为 0。

注意:设置标签会禁止与具有其他标签的请求共享套接字,这可能会由于禁止连接共享而对性能产生不利影响。换句话说,仅当所有请求具有相同的套接字标签时,才允许使用多路复用套接字(例如 HTTP/2 和 QUIC)。

参数
tag 用于计算此请求造成的套接字流量的标签值。介于 0xFFFFFF00 和 0xFFFFFFFF 之间的标签被保留,由 DownloadManager 等系统服务在代表应用执行流量时在内部使用。
返回
  • 构建器,以方便链式调用。

public UrlRequest.Builder setTrafficStatsUid (int uid)

设置在计算此请求造成的套接字流量时要使用的特定 UID。详见 TrafficStats。设计用于在代表另一个应用执行操作时使用。调用者必须持有 MODIFY_NETWORK_ACCOUNTING 权限。默认情况下,流量归因于调用者的 UID。

注意:设置 UID 会禁止与具有其他 UID 的请求共享套接字,这可能会由于禁止连接共享而对性能产生不利影响。换句话说,仅当所有请求设置了相同的 UID 时,才允许使用多路复用套接字(例如 HTTP/2 和 QUIC)。

参数
uid 归因于此请求造成的套接字流量的 UID。
返回
  • 构建器,以方便链式调用。

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

设置上传数据提供程序。如果未显式设置,则将方法切换为“POST”。如果未设置 Content-Type 头,则启动请求将抛出异常。

参数
uploadDataProvider 负责提供上传数据。
executor 所有 uploadDataProvider 方法都将使用此 Executor 调用。可选择与请求本身使用的 Executor 相同。
返回
  • 构建器,以方便链式调用。