UrlRequest.Builder

public abstract class UrlRequest.Builder


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

概要

定数

static final int

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

static final int

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

static final int

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

static final int

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

static final int

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

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

パブリック メソッド

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

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

UrlRequest.Builder

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

abstract UrlRequest.Builder

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

UrlRequest.Builder
bindToNetwork(long networkHandle)

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

abstract UrlRequest

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

abstract UrlRequest.Builder

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

abstract UrlRequest.Builder

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

abstract UrlRequest.Builder
setPriority(int priority)

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

UrlRequest.Builder
@UrlRequest.Experimental
setRawCompressionDictionary(
    byte[] dictionarySha256Hash,
    ByteBuffer dictionary,
    String dictionaryId
)

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

public static final int REQUEST_PRIORITY_HIGHEST = 4

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

REQUEST_PRIORITY_IDLE

public static final int REQUEST_PRIORITY_IDLE = 0

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

REQUEST_PRIORITY_LOW

public static final int REQUEST_PRIORITY_LOW = 2

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

REQUEST_PRIORITY_LOWEST

public static final int REQUEST_PRIORITY_LOWEST = 1

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

REQUEST_PRIORITY_MEDIUM

public static final int REQUEST_PRIORITY_MEDIUM = 3

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

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

Builder

public Builder()

パブリック メソッド

addHeader

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

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

パラメータ
String header

ヘッダー名。

String value

ヘッダー値。

戻り値
UrlRequest.Builder

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

addRequestAnnotation

public UrlRequest.Builder addRequestAnnotation(Object annotation)

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

パラメータ
Object annotation

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

戻り値
UrlRequest.Builder

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

allowDirectExecutor

public abstract UrlRequest.Builder allowDirectExecutor()

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

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

bindToNetwork

public UrlRequest.Builder bindToNetwork(long networkHandle)

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

パラメータ
long networkHandle

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

戻り値
UrlRequest.Builder

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

build

public abstract UrlRequest build()

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

戻り値
UrlRequest

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

disableCache

public abstract UrlRequest.Builder disableCache()

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

戻り値
UrlRequest.Builder

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

setHttpMethod

public abstract UrlRequest.Builder setHttpMethod(String method)

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

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

パラメータ
String method

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

戻り値
UrlRequest.Builder

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

setPriority

public abstract UrlRequest.Builder setPriority(int priority)

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

パラメータ
int priority

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

戻り値
UrlRequest.Builder

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

setRawCompressionDictionary

@UrlRequest.Experimental
public UrlRequest.Builder setRawCompressionDictionary(
    byte[] dictionarySha256Hash,
    ByteBuffer dictionary,
    String dictionaryId
)

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 にも一致します。

パラメータ
byte[] dictionarySha256Hash

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

ByteBuffer dictionary

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

String dictionaryId

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

戻り値
UrlRequest.Builder

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

setRequestFinishedListener

public UrlRequest.Builder setRequestFinishedListener(RequestFinishedInfo.Listener listener)

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

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

パラメータ
RequestFinishedInfo.Listener listener

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

戻り値
UrlRequest.Builder

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

setTrafficStatsTag

public UrlRequest.Builder setTrafficStatsTag(int tag)

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

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

パラメータ
int tag

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

戻り値
UrlRequest.Builder

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

setTrafficStatsUid

public UrlRequest.Builder setTrafficStatsUid(int uid)

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

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

パラメータ
int uid

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

戻り値
UrlRequest.Builder

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

setUploadDataProvider

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

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

パラメータ
UploadDataProvider uploadDataProvider

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

Executor executor

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

戻り値
UrlRequest.Builder

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