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
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

中请求优先级。如果未调用此方法,请求将被赋予 REQUEST_PRIORITY_MEDIUM 优先级。这是赋予请求的默认优先级。

常量值: 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 传递给 RequestFinishedInfo.Listener 的对象。
返回
  • 构建器以方便链式调用。

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 上调用,并提供由 getExecutor() 提供的请求完成信息。

参数
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 相同。
返回
  • 构建器以方便链式调用。