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()
|
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
中等的请求优先级。传递给 setPriority(int)
。这是为此请求设置的默认优先级。
公共构造函数
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 ()
标记此请求用于通知回调(对于 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
上调用,该 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 相同。 |
返回
- 构建器,以方便链式调用。