public class UriComponentsBuilder extends java.lang.Object implements UriBuilder, java.lang.Cloneable
UriComponents
のビルダー。典型的な使用箇所は次のとおりです。
UriComponentsBuilder
を作成します (fromPath(String)
や fromUri(URI)
など)scheme(String)
、userInfo(String)
、host(String)
、port(int)
、path(String)
、pathSegment(String...)
、queryParam(String, Object...)
、fragment(String)
を介してさまざまな URI コンポーネントを設定します。build()
メソッドを使用して UriComponents
インスタンスを構築します。newInstance()
, fromPath(String)
, fromUri(URI)
修飾子 | コンストラクターと説明 |
---|---|
protected | UriComponentsBuilder() デフォルトコンストラクター。 |
protected | UriComponentsBuilder(UriComponentsBuilder other) 指定された UriComponentsBuilder のディープコピーを作成します。 |
修飾子と型 | メソッドと説明 |
---|---|
UriComponents | build() このビルダーに含まれるさまざまなコンポーネントから UriComponents インスタンスを構築します。 |
UriComponents | build(boolean encoded) このビルダーに含まれるさまざまなコンポーネントから UriComponents インスタンスを構築します。 |
java.net.URI | build(java.util.Map<java.lang.String,?> uriVariables) URI インスタンスを作成し、URI テンプレート変数をマップの値で置き換えます。 |
java.net.URI | build(java.lang.Object... uriVariables) URI インスタンスを構築し、URI テンプレート変数を配列の値で置き換えます。 |
UriComponents | buildAndExpand(java.util.Map<java.lang.String,?> uriVariables) UriComponents インスタンスを作成し、URI テンプレート変数をマップの値で置き換えます。 |
UriComponents | buildAndExpand(java.lang.Object... uriVariableValues) UriComponents インスタンスを構築し、URI テンプレート変数を配列の値で置き換えます。 |
java.lang.Object | clone() オブジェクトの clone() メソッドのパブリック宣言。 |
UriComponentsBuilder | cloneBuilder() この UriComponentsBuilder を複製します。 |
UriComponentsBuilder | encode() ビルド時に URI テンプレートを事前にエンコードし、展開時に URI 変数を個別にエンコードするようリクエストします。 |
UriComponentsBuilder | encode(java.nio.charset.Charset charset) "UTF-8" 以外の文字セットを持つ encode() のバリアント。 |
UriComponentsBuilder | fragment(java.lang.String fragment) URI フラグメントを設定します。 |
static UriComponentsBuilder | fromHttpRequest(HttpRequest request) 指定された HttpRequest に関連付けられた URI から新しい UriComponents オブジェクトを作成すると同時に、ヘッダー "Forwarded" (RFC 7239)、または "X-Forwarded-Host"、"X-Forwarded-Port"、「X-Forwarded 「転送」が見つからない場合は「プロト」。 |
static UriComponentsBuilder | fromHttpUrl(java.lang.String httpUrl) 指定された HTTP URL 文字列から URI コンポーネントビルダーを作成します。 |
static UriComponentsBuilder | fromOriginHeader(java.lang.String origin) HTTP リクエストの "Origin" ヘッダーを解析してインスタンスを作成します。 |
static UriComponentsBuilder | fromPath(java.lang.String path) 指定されたパスで初期化されるビルダーを作成します。 |
static UriComponentsBuilder | fromUri(java.net.URI uri) 指定された URI で初期化されるビルダーを作成します。 |
static UriComponentsBuilder | fromUriString(java.lang.String uri) 指定された URI 文字列で初期化されるビルダーを作成します。 |
UriComponentsBuilder | host(java.lang.String host) URI ホストを設定します。 |
static UriComponentsBuilder | newInstance() 新しい空のビルダーを作成します。 |
UriComponentsBuilder | path(java.lang.String path) 指定したパスをこのビルダーの既存のパスに追加します。 |
UriComponentsBuilder | pathSegment(java.lang.String... pathSegments) 既存のパスにパスセグメントを追加します。 |
UriComponentsBuilder | port(int port) URI ポートを設定します。 |
UriComponentsBuilder | port(java.lang.String port) URI ポートを設定します。 |
UriComponentsBuilder | query(java.lang.String query) 指定されたクエリをこのビルダーの既存のクエリに追加します。 |
UriComponentsBuilder | queryParam(java.lang.String name, java.lang.Object... values) 指定されたクエリパラメーターを既存のクエリパラメーターに追加します。 |
UriComponentsBuilder | queryParams(MultiValueMap<java.lang.String,java.lang.String> params) 指定されたクエリパラメーターを追加します。 |
UriComponentsBuilder | replacePath(java.lang.String path) このビルダーのパスを設定して、既存のすべてのパスおよびパスセグメント値をオーバーライドします。 |
UriComponentsBuilder | replaceQuery(java.lang.String query) このビルダーのクエリを設定して、既存のすべてのクエリパラメーターをオーバーライドします。 |
UriComponentsBuilder | replaceQueryParam(java.lang.String name, java.lang.Object... values) 同じパラメーターの既存のすべてのクエリ値をオーバーライドして、クエリパラメーター値を設定します。 |
UriComponentsBuilder | replaceQueryParams(MultiValueMap<java.lang.String,java.lang.String> params) 既存のすべてのクエリ値をオーバーライドして、クエリパラメーター値を設定します。 |
UriComponentsBuilder | scheme(java.lang.String scheme) URI スキームを設定します。 |
UriComponentsBuilder | schemeSpecificPart(java.lang.String ssp) URI スキーム固有部分を設定します。 |
java.lang.String | toUriString() URI 文字列を作成します。 |
UriComponentsBuilder | uri(java.net.URI uri) 指定された URI のコンポーネントからこのビルダーのコンポーネントを初期化します。 |
UriComponentsBuilder | uriComponents(UriComponents uriComponents) 指定された UriComponents インスタンスの値から、このビルダーの個々の URI コンポーネントを設定または追加します。 |
UriComponentsBuilder | uriVariables(java.util.Map<java.lang.String,java.lang.Object> uriVariables) ビルド時に展開される URI 変数を構成します。 |
UriComponentsBuilder | userInfo(java.lang.String userInfo) URI ユーザー情報を設定します。 |
protected UriComponentsBuilder()
protected UriComponentsBuilder(UriComponentsBuilder other)
other
- コピー元の他のビルダー public static UriComponentsBuilder newInstance()
UriComponentsBuilder
public static UriComponentsBuilder fromPath(java.lang.String path)
path
- 初期化するパス UriComponentsBuilder
public static UriComponentsBuilder fromUri(java.net.URI uri)
URI
で初期化されるビルダーを作成します。uri
- 初期化する URIUriComponentsBuilder
public static UriComponentsBuilder fromUriString(java.lang.String uri)
注意 : 予約文字の存在は、URI 文字列の正しい解析を妨げる可能性があります。たとえば、クエリパラメーターに '='
または '&'
文字が含まれている場合、クエリ文字列を明確に解析することはできません。正しい解析を可能にするために、そのような値を URI 変数に置き換える必要があります。
String uriString = "/hotels/42?filter={value}"; UriComponentsBuilder.fromUriString(uriString).buildAndExpand("hot&cold");
uri
- 初期化する URI 文字列 UriComponentsBuilder
public static UriComponentsBuilder fromHttpUrl(java.lang.String httpUrl)
注意 : 予約文字の存在は、URI 文字列の正しい解析を妨げる可能性があります。たとえば、クエリパラメーターに '='
または '&'
文字が含まれている場合、クエリ文字列を明確に解析することはできません。正しい解析を可能にするために、そのような値を URI 変数に置き換える必要があります。
String urlString = "https://example.com/hotels/42?filter={value}"; UriComponentsBuilder.fromHttpUrl(urlString).buildAndExpand("hot&cold");
httpUrl
- ソース URIpublic static UriComponentsBuilder fromHttpRequest(HttpRequest request)
UriComponents
オブジェクトを作成すると同時に、ヘッダー "Forwarded" (RFC 7239)、または "X-Forwarded-Host"、"X-Forwarded-Port"、「X-Forwarded 「転送」が見つからない場合は「プロト」。request
- ソースリクエスト public static UriComponentsBuilder fromOriginHeader(java.lang.String origin)
public final UriComponentsBuilder encode()
UriComponents.encode()
と比較すると、このメソッドは URI テンプレートに対して同じ効果があります。つまり、各 URI コンポーネントは、非 ASCII 文字および不正な(URI コンポーネント型内の)文字をエスケープされたオクテットに置き換えることでエンコードされます。ただし、URI 変数はより厳密にエンコードされており、予約された意味を持つ文字もエスケープされます。
ほとんどの場合、このメソッドは URI 変数を完全にエンコードされる不透明なデータとして扱うため、期待される結果が得られる可能性が高くなりますが、UriComponents.encode()
は予約文字を含む URI 変数を意図的に展開する場合にのみ有用です。
たとえば ';' パスでは有効ですが、意味は予約されています。このメソッドは ";" を置き換えます。URI 変数には "%3B" が含まれますが、URI テンプレートには含まれません。対照的に、UriComponents.encode()
は ";" を置き換えません。それはパス内の正当な文字です。
public UriComponentsBuilder encode(java.nio.charset.Charset charset)
encode()
のバリアント。charset
- エンコードに使用する文字セット public UriComponents build()
UriComponents
インスタンスを構築します。public UriComponents build(boolean encoded)
UriComponents
インスタンスを構築します。encoded
- このビルダーで設定されたすべてのコンポーネントがエンコードされているか(true
) (false
)public UriComponents buildAndExpand(java.util.Map<java.lang.String,?> uriVariables)
UriComponents
インスタンスを作成し、URI テンプレート変数をマップの値で置き換えます。これは、build()
への呼び出しと UriComponents.expand(Map)
への呼び出しを組み合わせたショートカットメソッドです。uriVariables
- URI 変数のマップ public UriComponents buildAndExpand(java.lang.Object... uriVariableValues)
UriComponents
インスタンスを構築し、URI テンプレート変数を配列の値で置き換えます。これは、build()
への呼び出しと UriComponents.expand(Object...)
への呼び出しを組み合わせたショートカットメソッドです。uriVariableValues
- URI 変数値 public java.net.URI build(java.lang.Object... uriVariables)
UriBuilder
URI
インスタンスを構築し、URI テンプレート変数を配列の値で置き換えます。UriBuilder
の build
uriVariables
- URI 変数のマップ public java.net.URI build(java.util.Map<java.lang.String,?> uriVariables)
UriBuilder
URI
インスタンスを作成し、URI テンプレート変数をマップの値で置き換えます。UriBuilder
の build
uriVariables
- URI 変数のマップ public java.lang.String toUriString()
build()
、次に UriComponents.encode()
、最後に UriComponents.toUriString()
の呼び出しを組み合わせるショートカットメソッドです。UriComponents.toUriString()
public UriComponentsBuilder uri(java.net.URI uri)
uri
- URIpublic UriComponentsBuilder uriComponents(UriComponents uriComponents)
UriComponents
インスタンスの値から、このビルダーの個々の URI コンポーネントを設定または追加します。 各コンポーネントのセマンティクス(つまり、設定と追加)については、このクラスのビルダーメソッドを確認してください。たとえば、host(String)
が設定され、path(String)
が追加されます。
uriComponents
- コピー元の UriComponentspublic UriComponentsBuilder scheme(@Nullable java.lang.String scheme)
null
にすることもできます。UriBuilder
の scheme
scheme
- URI スキーム public UriComponentsBuilder schemeSpecificPart(java.lang.String ssp)
ssp
- URI スキーム固有部分には、URI テンプレートパラメーターが含まれる場合があります public UriComponentsBuilder userInfo(@Nullable java.lang.String userInfo)
null
になる場合もあります。UriBuilder
の userInfo
userInfo
- URI ユーザー情報 public UriComponentsBuilder host(@Nullable java.lang.String host)
null
にすることもできます。UriBuilder
の host
host
- URI ホスト public UriComponentsBuilder port(int port)
-1
を渡すと、このビルダーのポートがクリアされます。UriBuilder
の port
port
- URI ポート public UriComponentsBuilder port(@Nullable java.lang.String port)
port(int)
を使用します。null
を渡すと、このビルダーのポートがクリアされます。UriBuilder
の port
port
- URI ポート public UriComponentsBuilder path(java.lang.String path)
UriBuilder
の path
path
- URI パス public UriComponentsBuilder pathSegment(java.lang.String... pathSegments) throws java.lang.IllegalArgumentException
path("/")
を使用して、末尾のスラッシュを確認します。UriBuilder
の pathSegment
pathSegments
- URI パスセグメント java.lang.IllegalArgumentException
public UriComponentsBuilder replacePath(@Nullable java.lang.String path)
UriBuilder
の replacePath
path
- URI パス (null
値は空のパスになります)public UriComponentsBuilder query(@Nullable java.lang.String query)
注意 : 予約文字の存在は、URI 文字列の正しい解析を妨げる可能性があります。たとえば、クエリパラメーターに '='
または '&'
文字が含まれている場合、クエリ文字列を明確に解析することはできません。正しい解析を可能にするために、そのような値を URI 変数に置き換える必要があります。
UriComponentsBuilder.fromUriString("/hotels/42") .query("filter={value}") .buildAndExpand("hot&cold");
UriBuilder
の query
query
- クエリ文字列 public UriComponentsBuilder replaceQuery(@Nullable java.lang.String query)
UriBuilder
の replaceQuery
query
- クエリ文字列。null
値は、すべてのクエリパラメーターを削除します。public UriComponentsBuilder queryParam(java.lang.String name, java.lang.Object... values)
?foo=bar
ではなく ?foo
)。UriBuilder
の queryParam
name
- クエリパラメーター名 values
- クエリパラメーター値 public UriComponentsBuilder queryParams(@Nullable MultiValueMap<java.lang.String,java.lang.String> params)
UriBuilder
の queryParams
params
- パラメーター public UriComponentsBuilder replaceQueryParam(java.lang.String name, java.lang.Object... values)
UriBuilder
の replaceQueryParam
name
- クエリパラメーター名 values
- クエリパラメーター値 public UriComponentsBuilder replaceQueryParams(@Nullable MultiValueMap<java.lang.String,java.lang.String> params)
UriBuilder
の replaceQueryParams
params
- クエリパラメーター名 public UriComponentsBuilder fragment(@Nullable java.lang.String fragment)
null
になる場合もあります。UriBuilder
の fragment
fragment
- URI フラグメント public UriComponentsBuilder uriVariables(java.util.Map<java.lang.String,java.lang.Object> uriVariables)
指定された変数は、必要なすべての変数のサブセットである場合があります。ビルド時には、利用可能なものが展開されますが、未解決の URI プレースホルダーはそのまま残り、後で展開できます。
UriComponents.expand(Map)
または buildAndExpand(Map)
とは対照的に、このメソッドは、UriComponents
インスタンスをまだ構築せずに URI 変数を提供する必要がある場合、またはホストやポートなどの共有デフォルト値を事前に展開する場合に便利です。
uriVariables
- 使用する URI 変数 public java.lang.Object clone()
clone()
メソッドのパブリック宣言。cloneBuilder()
へのデリゲート。java.lang.Object
の clone
public UriComponentsBuilder cloneBuilder()
UriComponentsBuilder
を複製します。UriComponentsBuilder
オブジェクト