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 | 中请求优先级。 |
公共构造函数摘要
Builder()
|
公共方法摘要
abstract UrlRequest.Builder |
addHeader(String header, String value)
添加请求头。
|
UrlRequest.Builder |
addRequestAnnotation(Object annotation)
将注解对象与此请求相关联。
|
abstract UrlRequest.Builder |
allowDirectExecutor()
标记此请求将用于通知回调(针对
UploadDataProvider 和 UrlRequest.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 | |
UrlRequest.Builder |
setTrafficStatsTag(int tag)
设置当统计此请求引起的套接字流量时使用的
TrafficStats 标签。 |
UrlRequest.Builder |
setTrafficStatsUid(int uid)
设置当统计此请求引起的套接字流量时使用的特定 UID。
|
abstract UrlRequest.Builder |
继承方法摘要
常量
public static final int REQUEST_PRIORITY_MEDIUM
中请求优先级。如果未调用此方法,请求将被赋予 REQUEST_PRIORITY_MEDIUM
优先级。这是赋予请求的默认优先级。
公共构造函数
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 ()
标记此请求将用于通知回调(针对 UploadDataProvider
和 UrlRequest.Callback
)的执行器有意执行内联操作,例如 Guava 的 directExecutor 或 ThreadPoolExecutor.CallerRunsPolicy
。
警告:此选项很容易意外阻塞网络线程。如果您的回调执行磁盘 I/O、获取锁或调用其他您未仔细控制和审计的代码,则不应使用此选项。
public abstract UrlRequest build ()
使用此 UrlRequest.Builder
中的配置创建 UrlRequest
。然后可以通过调用 UrlRequest.start()
启动返回的 UrlRequest
。
返回
- 使用此
UrlRequest.Builder
中的配置构建的UrlRequest
。
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 相同。 |
返回
- 构建器以方便链式调用。