UrlRequest.Builder

abstract class UrlRequest.Builder


UrlRequest のビルダー。build でリクエストを構築する前に、リクエストを構成できるようになりました。ビルダーは newUrlRequestBuilder を呼び出して作成できます。

概要

定数

const Int

リクエストの優先度が最も高い。

const Int

リクエストの優先度が最も低い。

const Int

リクエストの優先度が低い。

const Int

リクエストの優先度が非常に低い。

const Int

リクエストの優先度が中程度。

パブリック コンストラクタ

パブリック関数

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

リクエスト ヘッダーを追加します。

UrlRequest.Builder!
addRequestAnnotation(annotation: Any!)

アノテーション オブジェクトをこのリクエストに関連付けます。

abstract UrlRequest.Builder!

このリクエストで使用される実行プログラムが、Guava の directExecutor や java.util.concurrent.ThreadPoolExecutor.CallerRunsPolicy のように、コールバック( UploadDataProviderUrlRequest.Callback)に通知するためにインライン実行を意図的に行っていることを示すマーク。

UrlRequest.Builder!
bindToNetwork(networkHandle: Long)

リクエストを指定されたネットワーク ハンドルにバインドします。

abstract UrlRequest!

この Builder 内の構成を使用して UrlRequest を作成します。

abstract UrlRequest.Builder!

リクエストのキャッシュを無効にします。

abstract UrlRequest.Builder!

このリクエストに使用する HTTP メソッド動詞を設定します。

abstract UrlRequest.Builder!
setPriority(priority: Int)

リクエストの優先度を設定します。REQUEST_PRIORITY_* 値のいずれかである必要があります。

UrlRequest.Builder!
@UrlRequest.Experimental
setRawCompressionDictionary(
    dictionarySha256Hash: ByteArray!,
    dictionary: ByteBuffer!,
    dictionaryId: String!
)

Cronet がこのリクエストに指定された圧縮辞書を使用できるようにします。

UrlRequest.Builder!

onCanceled() onFailed()onSucceeded() から戻った後に呼び出されるリスナーを設定します。

UrlRequest.Builder!

このリクエストによって発生したソケット トラフィックをアカウンティングする際に使用する android.net.TrafficStats タグを設定します。

UrlRequest.Builder!

このリクエストによって発生したソケット トラフィックをアカウンティングする際に使用する特定の UID を設定します。

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

アップロード データ プロバイダを設定します。

定数

REQUEST_PRIORITY_HIGHEST

const val REQUEST_PRIORITY_HIGHEST = 4: Int

リクエストの優先度が最も高い。setPriority に渡されました。

REQUEST_PRIORITY_IDLE

const val REQUEST_PRIORITY_IDLE = 0: Int

リクエストの優先度が最も低い。setPriority に渡されました。

REQUEST_PRIORITY_LOW

const val REQUEST_PRIORITY_LOW = 2: Int

リクエストの優先度が低い。setPriority に渡されました。

REQUEST_PRIORITY_LOWEST

const val REQUEST_PRIORITY_LOWEST = 1: Int

リクエストの優先度が非常に低い。setPriority に渡されました。

REQUEST_PRIORITY_MEDIUM

const val REQUEST_PRIORITY_MEDIUM = 3: Int

リクエストの優先度が中程度。setPriority に渡されました。これはリクエストに割り当てられるデフォルトの優先度です。

パブリック コンストラクタ

Builder

Builder()

パブリック関数

addHeader

abstract fun addHeader(header: String!, value: String!): UrlRequest.Builder!

リクエスト ヘッダーを追加します。

パラメータ
header: String!

ヘッダー名。

value: String!

ヘッダー値。

戻り値
UrlRequest.Builder!

チェーンを容易にするためのビルダー。

addRequestAnnotation

fun addRequestAnnotation(annotation: Any!): UrlRequest.Builder!

アノテーション オブジェクトをこのリクエストに関連付けます。複数追加できます。RequestFinishedInfo.Listener に渡されます。getAnnotations をご覧ください。

パラメータ
annotation: Any!

RequestFinishedInfo を使用して RequestFinishedInfo.Listener に渡すオブジェクト。

戻り値
UrlRequest.Builder!

チェーンを容易にするためのビルダー。

allowDirectExecutor

abstract fun allowDirectExecutor(): UrlRequest.Builder!

このリクエストで使用される実行プログラムが、Guava の directExecutor や java.util.concurrent.ThreadPoolExecutor.CallerRunsPolicy のように、コールバック( UploadDataProviderUrlRequest.Callback)に通知するためにインライン実行を意図的に実行していることを示すマーク。

警告: このオプションを使用すると、ネットワーク スレッドを誤ってブロックしやすくなります。コールバックがディスク I/O を実行したり、ロックを取得したり、慎重に制御および監査していない他のコードを呼び出したりする場合は、使用しないでください。

bindToNetwork

fun bindToNetwork(networkHandle: Long): UrlRequest.Builder!

リクエストを指定されたネットワーク ハンドルにバインドします。Cronet は、このハンドルに関連付けられたネットワークのみを使用してこのリクエストを送信します。このネットワークが切断されると、リクエストは失敗します。正確なエラーは、ネットワークが切断されたときのリクエスト処理の段階によって異なります。ネットワーク ハンドルは Network#getNetworkHandle を介して取得できます。Android Marshmallow 以降でのみ利用可能です。

パラメータ
networkHandle: Long

リクエストをバインドするネットワーク ハンドル。バインドを解除するには、UNBIND_NETWORK_HANDLE を指定します。

戻り値
UrlRequest.Builder!

チェーンを容易にするためのビルダー。

build

abstract fun build(): UrlRequest!

この Builder 内の構成を使用して UrlRequest を作成します。返された UrlRequest は、start を呼び出すことで開始できます。

戻り値
UrlRequest!

この Builder 内の構成を使用して UrlRequest を構築します。

disableCache

abstract fun disableCache(): UrlRequest.Builder!

リクエストのキャッシュを無効にします。コンテキストがキャッシュを使用するように設定されていない場合、この呼び出しは無効です。

戻り値
UrlRequest.Builder!

チェーンを容易にするためのビルダー。

setHttpMethod

abstract fun setHttpMethod(method: String!): UrlRequest.Builder!

このリクエストに使用する HTTP メソッド動詞を設定します。

このメソッドが呼び出されない場合のデフォルトは、リクエストに本文がない場合は「GET」、本文がある場合は「POST」です。

パラメータ
method: String!

"GET"、"HEAD"、"DELETE"、"POST"、"PUT" のいずれか。

戻り値
UrlRequest.Builder!

チェーンを容易にするためのビルダー。

setPriority

abstract fun setPriority(priority: Int): UrlRequest.Builder!

リクエストの優先度を設定します。これは REQUEST_PRIORITY_* 値のいずれかである必要があります。このメソッドが呼び出されない場合、リクエストには REQUEST_PRIORITY_MEDIUM の優先度が与えられます。

パラメータ
priority: Int

リクエストの優先度。 REQUEST_PRIORITY_* 値のいずれかである必要があります。

戻り値
UrlRequest.Builder!

チェーンを容易にするためのビルダー。

setRawCompressionDictionary

@UrlRequest.Experimental
fun setRawCompressionDictionary(
    dictionarySha256Hash: ByteArray!,
    dictionary: ByteBuffer!,
    dictionaryId: String!
): UrlRequest.Builder!

Cronet がこのリクエストに指定された圧縮辞書を使用できるようにします。指定した場合、Cronet はサーバーに圧縮辞書の可用性を通知する可能性があります。この設定を有効にするには、このリクエストを実行する CronetEngine が、外部辞書をサポートする圧縮スキームを有効にするように構成されている必要があります。これは、Cronet 内で draft-ietf-httpbis-compression-dictionary を部分的に実装するものです。Cronet は「Use-As-Dictionary」レスポンス ヘッダーを直接処理しません。代わりに、エンベッダーが次のいずれかを行う必要があります。ヘッダーを処理し、後で Use-As-Dictionary のルールに一致するリクエストに対して UrlRequest.Builder#setCompressionDictionary を呼び出す。または、他の帯域外メカニズムを介して圧縮辞書を取得し、後で UrlRequest.Builder#setCompressionDictionary を呼び出す。Cronet は、この辞書をこの UrlRequest のみに一致するものとして解釈します。リクエストがリダイレクトされ、埋め込み側がリダイレクトを追跡する場合、辞書は新しい URL にも一致します。

パラメータ
dictionarySha256Hash: ByteArray!

指定された圧縮辞書の SHA-256。

dictionary: ByteBuffer!

この UrlRequest で Cronet が使用できる圧縮辞書。これはダイレクト ByteBuffer である必要があります。

dictionaryId: String!

この辞書に関連付けられた ID(省略可)。指定しない場合は空の文字列にする必要があります。存在する場合は、Dictionary-ID ヘッダー経由で送信されます。サーバーが「Use-As-Dictionary」レスポンスで ID を指定した場合に、これを指定する必要があります。

戻り値
UrlRequest.Builder!

チェーンを容易にするためのビルダー。

setRequestFinishedListener

fun setRequestFinishedListener(listener: RequestFinishedInfo.Listener!): UrlRequest.Builder!

onCanceled() onFailed()onSucceeded() のいずれかが戻った後に呼び出されるリスナーを設定します。

リスナーは、 getExecutor() によって提供された java.util.concurrent.Executor のリクエスト完了情報とともに呼び出されます。

パラメータ
listener: RequestFinishedInfo.Listener!

完了したリクエストのリスナー。

戻り値
UrlRequest.Builder!

チェーンを容易にするためのビルダー。

setTrafficStatsTag

fun setTrafficStatsTag(tag: Int): UrlRequest.Builder!

このリクエストによって発生したソケット トラフィックをアカウンティングする際に使用する android.net.TrafficStats タグを設定します。詳しくは、android.net.TrafficStats をご覧ください。タグが設定されていない場合(このメソッドが呼び出されていない場合など)、Android は、このリクエストによって発生したソケット トラフィックを、タグ値が 0 に設定されているかのように処理します。

注: タグを設定すると、他のタグのリクエストとのソケットの共有が禁止され、接続の共有が禁止されることでパフォーマンスに悪影響が及ぶ可能性があります。つまり、すべてのリクエストに同じソケットタグがある場合にのみ、多重化ソケット(HTTP/2 や QUIC など)の使用が許可されます。

パラメータ
tag: Int

このリクエストによって発生したソケット トラフィックを考慮する際に使用されるタグ値。0xFFFFFF00 ~ 0xFFFFFFFF のタグは予約されており、アプリに代わってトラフィックを実行する際に android.app.DownloadManager などのシステム サービスによって内部的に使用されます。

戻り値
UrlRequest.Builder!

チェーンを容易にするためのビルダー。

setTrafficStatsUid

fun setTrafficStatsUid(uid: Int): UrlRequest.Builder!

このリクエストによって発生したソケット トラフィックをアカウンティングする際に使用する特定の UID を設定します。詳しくは、android.net.TrafficStats をご覧ください。別のアプリケーションの代わりにオペレーションを実行するときに使用するように設計されています。呼び出し元には MODIFY_NETWORK_ACCOUNTING 権限が必要です。デフォルトでは、トラフィックは呼び出し元の UID に関連付けられます。

注: UID を設定すると、他の UID を持つリクエストとのソケットの共有が禁止され、接続の共有が禁止されることでパフォーマンスに悪影響を及ぼす可能性があります。つまり、すべてのリクエストに同じ UID が設定されている場合にのみ、多重化ソケット(HTTP/2 や QUIC など)の使用が許可されます。

パラメータ
uid: Int

このリクエストによって発生したソケット トラフィックを帰属させる UID。

戻り値
UrlRequest.Builder!

チェーンを容易にするためのビルダー。

setUploadDataProvider

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

アップロード データ プロバイダを設定します。明示的に設定されていない場合、メソッドを「POST」に切り替えます。Content-Type ヘッダーが設定されていない場合、リクエストを開始すると例外がスローされます。

パラメータ
uploadDataProvider: UploadDataProvider!

アップロード データの提供を担当します。

executor: Executor!

すべての uploadDataProvider メソッドは、この Executor を使用して呼び出されます。リクエスト自体が使用している Executor と同じにすることもできます。

戻り値
UrlRequest.Builder!

チェーンを容易にするためのビルダー。