クラス UriComponentsBuilder
- 実装されているすべてのインターフェース:
- CloneableSE,- UriBuilder
- 既知の直属サブクラス
- ServletUriComponentsBuilder
UriComponents のビルダー。典型的な使用箇所は次のとおりです。
- 静的ファクトリメソッドの 1 つで 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インスタンスを構築します。
- 導入:
- 3.1
- 作成者:
- Arjen Poutsma, Rossen Stoyanchev, Phillip Webb, Oliver Gierke, Brian Clozel, Sebastien Deleuze, Sam Brannen
- 関連事項:
- コンストラクターの概要コンストラクター修飾子コンストラクター説明- protectedデフォルトコンストラクター。- protected指定された UriComponentsBuilder のディープコピーを作成します。
- メソッドのサマリー修飾子と型メソッド説明- build()このビルダーに含まれるさまざまなコンポーネントから- UriComponentsインスタンスを構築します。- build- (boolean encoded) コンポーネントがすでに完全にエンコードされている場合に- UriComponentsインスタンスを作成する- build()のバリアント。- URISE インスタンスを構築し、URI テンプレート変数を配列の値で置き換えます。- URISE インスタンスを構築し、URI テンプレート変数をマップの値で置き換えます。- buildAndExpand- (ObjectSE... uriVariableValues) - UriComponentsインスタンスを構築し、URI テンプレート変数を配列の値で置き換えます。- buildAndExpand- (MapSE<StringSE, - ?> uriVariables) - UriComponentsインスタンスを作成し、URI テンプレート変数をマップの値で置き換えます。- clone()オブジェクトの- clone()メソッドのパブリック宣言。この- UriComponentsBuilderを複製します。- final UriComponentsBuilder- encode()ビルド時に URI テンプレートを事前にエンコードし、展開時に URI 変数を個別にエンコードするようリクエストします。"UTF-8" 以外の文字セットを持つ- encode()のバリアント。URI フラグメントを設定します。- static UriComponentsBuilder- fromHttpRequest- (HttpRequest request) 非推奨、削除予定: この API 要素は、将来のバージョンで削除される可能性があります。- static UriComponentsBuilder- fromHttpUrl- (StringSE httpUrl) 指定された HTTP URL 文字列から URI コンポーネントビルダーを作成します。- static UriComponentsBuilder- fromOriginHeader- (StringSE origin) HTTP リクエストの "Origin" ヘッダーを解析してインスタンスを作成します。- static UriComponentsBuilder指定されたパスで初期化されるビルダーを作成します。- static UriComponentsBuilder指定された- URIから初期化されるビルダーを作成します。- static UriComponentsBuilder- fromUriString- (StringSE uri) 指定された URI 文字列で初期化されるビルダーを作成します。URI テンプレート変数を含む URI ホストを設定します。このビルダーのホストをクリアするには、- nullにすることもできます。- static UriComponentsBuilder新しい空のビルダーを作成します。- static InetSocketAddressSE- parseForwardedFor- (HttpRequest request, InetSocketAddressSE remoteAddress) 非推奨、削除予定: この API 要素は、将来のバージョンで削除される可能性があります。このビルダーのパスに追加します。- pathSegment- (StringSE... pathSegments) パスセグメントを使用してパスに追加します。- port- (int port) URI ポートを設定します。URI ポートを設定します。指定されたクエリ文字列をクエリパラメーターに解析します。パラメーターは- '&'で区切られ、その値がある場合は- '='で区切られます。- queryParam- (StringSE name, ObjectSE... values) 指定されたクエリパラメーターを追加します。- queryParam- (StringSE name, CollectionSE<?> values) コレクションを持つ- UriBuilder.queryParam(String, Object...)のバリアント。- queryParamIfPresent- (StringSE name, OptionalSE<?> value) 指定された- OptionalSE に値がある場合は、- UriBuilder.queryParam(String, Object...)または- UriBuilder.queryParam(String, Collection)のいずれかにデリゲートします。値が空の場合は、クエリパラメーターはまったく追加されません。- queryParams- (MultiValueMap<StringSE, - StringSE> params) 複数のクエリパラメーターと値を追加します。- replacePath- (StringSE path) 現在のパスを上書きします。- replaceQuery- (StringSE query) 既存のクエリパラメーターをクリアしてから、- UriBuilder.query(String)に委譲します。- replaceQueryParam- (StringSE name, ObjectSE... values) 既存の値を置き換えるクエリパラメーター値を設定します。値が指定されていない場合、クエリパラメーターは削除されます。- replaceQueryParam- (StringSE name, CollectionSE<?> values) コレクションを持つ- UriBuilder.replaceQueryParam(String, Object...)のバリアント。- replaceQueryParams- (MultiValueMap<StringSE, - StringSE> params) 既存の値をすべて削除した後、クエリパラメーター値を設定します。URI テンプレート変数を含む URI スキームを設定します。このビルダーのスキームをクリアするには、- nullにすることもできます。URI スキーム固有部分を設定します。URI 文字列を作成します。指定された URI のコンポーネントからこのビルダーのコンポーネントを初期化します。- uriComponents- (UriComponents uriComponents) 指定された- UriComponentsインスタンスの値から、このビルダーの個々の URI コンポーネントを設定または追加します。- uriVariables- (MapSE<StringSE, - ObjectSE> uriVariables) ビルド時に展開される URI 変数を構成します。URI テンプレート変数を含む URI ユーザー情報を設定します。このビルダーのユーザー情報をクリアするには、- nullにすることもできます。
- コンストラクターの詳細- UriComponentsBuilderprotected UriComponentsBuilder()デフォルトのコンストラクター。直接インスタンス化を防ぐために保護されています。
- UriComponentsBuilder指定された UriComponentsBuilder のディープコピーを作成します。- パラメーター:
- other- コピー元の他のビルダー
- 導入:
- 4.1.3
 
 
- メソッドの詳細- newInstance新しい空のビルダーを作成します。- 戻り値:
-  新しい UriComponentsBuilder
 
- fromPath指定されたパスで初期化されるビルダーを作成します。- パラメーター:
- path- 初期化するパス
- 戻り値:
-  新しい UriComponentsBuilder
 
- fromUri指定された- URIから初期化されるビルダーを作成します。- 注意 : 結果のビルダーのコンポーネントは完全にエンコードされた(未加工)フォームになり、さらに変更を加えると、たとえば - UriUtilsのメソッドを介して、完全にエンコードされた値を提供する必要があります。さらに、コンポーネントがエンコードされていることを示すために、値が "true" の- build(boolean)を使用して- UriComponentsインスタンスを構築してください。- パラメーター:
- uri- 初期化する URI
- 戻り値:
-  新しい UriComponentsBuilder
 
- fromUriString指定された URI 文字列で初期化されるビルダーを作成します。- 注意 : 予約文字の存在は、URI 文字列の正しい解析を妨げる可能性があります。たとえば、クエリパラメーターに - '='または- '&'文字が含まれている場合、クエリ文字列を明確に解析することはできません。正しい解析を可能にするために、そのような値を URI 変数に置き換える必要があります。- String uriString = "/hotels/42?filter={value}"; UriComponentsBuilder.fromUriString(uriString).buildAndExpand("hot&cold");- パラメーター:
- uri- 初期化する URI 文字列
- 戻り値:
-  新しい UriComponentsBuilder
 
- fromHttpUrl指定された HTTP URL 文字列から URI コンポーネントビルダーを作成します。- 注意 : 予約文字の存在は、URI 文字列の正しい解析を妨げる可能性があります。たとえば、クエリパラメーターに - '='または- '&'文字が含まれている場合、クエリ文字列を明確に解析することはできません。正しい解析を可能にするために、そのような値を URI 変数に置き換える必要があります。- String urlString = "https://example.com/hotels/42?filter={value}"; UriComponentsBuilder.fromHttpUrl(urlString).buildAndExpand("hot&cold");- パラメーター:
- httpUrl- ソース URI
- 戻り値:
- URI の URI コンポーネント
 
- fromHttpRequest@DeprecatedSE(since="6.1", forRemoval=true) public static UriComponentsBuilder fromHttpRequest- (HttpRequest request) 非推奨、削除予定: この API 要素は、将来のバージョンで削除される可能性があります。指定された HttpRequest に関連付けられた URI から新しい- UriComponentsオブジェクトを作成すると同時に、ヘッダー "Forwarded" (RFC 7239)、または "X-Forwarded-Host"、"X-Forwarded-Port"、「X-Forwarded 「転送」が見つからない場合は「プロト」。- パラメーター:
- request- ソースリクエスト
- 戻り値:
- URI の URI コンポーネント
- 導入:
- 4.1.5
 
- parseForwardedFor@DeprecatedSE(since="6.1", forRemoval=true) @Nullable public static InetSocketAddressSE parseForwardedFor- (HttpRequest request, @Nullable InetSocketAddressSE remoteAddress) 非推奨、削除予定: この API 要素は、将来のバージョンで削除される可能性があります。最初の「転送済み」を解析します: クライアントのアドレスを表す- InetSocketAddressへの for =... " または " X-Forwarded-For " ヘッダー値。- パラメーター:
- request- 転送されたヘッダーを含む可能性のあるヘッダーを含むリクエスト
- remoteAddress- 現在の remoteAddress
- 戻り値:
-  ホストとポートが抽出された InetSocketAddress、またはヘッダーが存在しない場合はnull。
- 導入:
- 5.3
 
- fromOriginHeaderHTTP リクエストの "Origin" ヘッダーを解析してインスタンスを作成します。- 関連事項:
 
- encodeビルド時に URI テンプレートを事前にエンコードし、展開時に URI 変数を個別にエンコードするようリクエストします。- UriComponents.encode()と比較すると、このメソッドは URI テンプレートに対して同じ効果があります。つまり、各 URI コンポーネントは、非 ASCII 文字および不正な(URI コンポーネント型内の)文字をエスケープされたオクテットに置き換えることでエンコードされます。ただし、URI 変数はより厳密にエンコードされており、予約された意味を持つ文字もエスケープされます。- ほとんどの場合、このメソッドは URI 変数を完全にエンコードされる不透明(OPAQUE)データとして扱うため、期待される結果が得られる可能性が高くなりますが、 - UriComponents.encode()は、予約文字を含む URI 変数を意図的に展開する場合に役立ちます。- たとえば ';' パスでは有効ですが、意味は予約されています。このメソッドは ";" を置き換えます。URI 変数には "%3B" が含まれますが、URI テンプレートには含まれません。対照的に、 - UriComponents.encode()は ";" を置き換えません。それはパス内の正当な文字です。- URI 変数をまったく展開しない場合は、 - UriComponents.encode()の使用をお勧めします。これは、偶然に URI 変数のように見えるものもすべてエンコードするためです。- 導入:
- 5.0.8
 
- encode"UTF-8" 以外の文字セットを持つ- encode()のバリアント。- パラメーター:
- charset- エンコードに使用する文字セット
- 導入:
- 5.0.8
 
- buildこのビルダーに含まれるさまざまなコンポーネントから- UriComponentsインスタンスを構築します。- 戻り値:
- URI コンポーネント
 
- buildコンポーネントがすでに完全にエンコードされている場合に- UriComponentsインスタンスを作成する- build()のバリアント。これは、ビルダーが- fromUri(URI)を介して作成された場合などに役立ちます。- パラメーター:
- encoded- このビルダーのコンポーネントがすでにエンコードされているかどうか
- 戻り値:
- URI コンポーネント
- 例外:
- IllegalArgumentExceptionSE- エンコードされているはずの不正な文字がコンポーネントに含まれている場合。
 
- buildAndExpand- UriComponentsインスタンスを作成し、URI テンプレート変数をマップの値で置き換えます。これは、- build()への呼び出しと- UriComponents.expand(Map)への呼び出しを組み合わせたショートカットメソッドです。- パラメーター:
- uriVariables- URI 変数のマップ
- 戻り値:
- 拡張された値を持つ URI コンポーネント
 
- buildAndExpand- UriComponentsインスタンスを構築し、URI テンプレート変数を配列の値で置き換えます。これは、- build()への呼び出しと- UriComponents.expand(Object...)への呼び出しを組み合わせたショートカットメソッドです。- パラメーター:
- uriVariableValues- URI 変数値
- 戻り値:
- 拡張された値を持つ URI コンポーネント
 
- buildインターフェースからコピーされた説明:- UriBuilder- URISE インスタンスを構築し、URI テンプレート変数を配列の値で置き換えます。- 次で指定:
-  インターフェース UriBuilderのbuild
- パラメーター:
- uriVariables- URI 変数のマップ
- 戻り値:
- URI
 
- buildインターフェースからコピーされた説明:- UriBuilder- URISE インスタンスを構築し、URI テンプレート変数をマップの値で置き換えます。- 次で指定:
-  インターフェース UriBuilderのbuild
- パラメーター:
- uriVariables- URI 変数のマップ
- 戻り値:
- URI
 
- toUriStringURI 文字列を作成します。- 事実上、文字列表現を構築、エンコード、返すためのショートカット: - String uri = builder.build().encode().toUriString() - ただし、 - URI variablesが提供されている場合、URI テンプレートは URI 変数とは別に事前にエンコードされます(詳細については- encode()を参照)。- String uri = builder.encode().build().toUriString() - 次で指定:
-  インターフェース UriBuilderのtoUriString
- 導入:
- 4.1
- 関連事項:
 
- uri指定された URI のコンポーネントからこのビルダーのコンポーネントを初期化します。- パラメーター:
- uri- URI
- 戻り値:
- この UriComponentsBuilder
 
- uriComponents指定された- UriComponentsインスタンスの値から、このビルダーの個々の URI コンポーネントを設定または追加します。- 各コンポーネントのセマンティクス(つまり、設定と追加)については、このクラスのビルダーメソッドを確認してください。たとえば、 - host(String)が設定され、- path(String)が追加されます。- パラメーター:
- uriComponents- コピー元の UriComponents
- 戻り値:
- この UriComponentsBuilder
 
- schemeインターフェースからコピーされた説明:- UriBuilderURI テンプレート変数を含む URI スキームを設定します。このビルダーのスキームをクリアするには、- nullにすることもできます。- 次で指定:
-  インターフェース UriBuilderのscheme
- パラメーター:
- scheme- URI スキーム
 
- schemeSpecificPart- パラメーター:
- ssp- URI スキーム固有部分には、URI テンプレートパラメーターが含まれる場合があります
- 戻り値:
- この UriComponentsBuilder
 
- userInfoインターフェースからコピーされた説明:- UriBuilderURI テンプレート変数を含む URI ユーザー情報を設定します。このビルダーのユーザー情報をクリアするには、- nullにすることもできます。- 次で指定:
-  インターフェース UriBuilderのuserInfo
- パラメーター:
- userInfo- URI ユーザー情報
 
- hostインターフェースからコピーされた説明:- UriBuilderURI テンプレート変数を含む URI ホストを設定します。このビルダーのホストをクリアするには、- nullにすることもできます。- 次で指定:
-  インターフェース UriBuilderのhost
- パラメーター:
- host- URI ホスト
 
- portインターフェースからコピーされた説明:- UriBuilderURI ポートを設定します。- -1を渡すと、このビルダーのポートがクリアされます。- 次で指定:
-  インターフェース UriBuilderのport
- パラメーター:
- port- URI ポート
 
- portインターフェースからコピーされた説明:- UriBuilderURI ポートを設定します。このメソッドは、ポートを URI 変数でパラメーター化する必要がある場合にのみ使用してください。それ以外の場合は、- UriBuilder.port(int)を使用します。- nullを渡すと、このビルダーのポートがクリアされます。- 次で指定:
-  インターフェース UriBuilderのport
- パラメーター:
- port- URI ポート
 
- pathインターフェースからコピーされた説明:- UriBuilderこのビルダーのパスに追加します。- 指定された値は、追加のスラッシュを挿入せずに、以前の - path値にそのまま追加されます。例:- builder.path("/first-").path("value/").path("/{id}").build("123") // Results is "/first-value/123"- 対照的に、 - pathSegmentは個々のパスセグメントの間にスラッシュを挿入します。例:- builder.pathSegment("first-value", "second-value").path("/") // Results is "/first-value/second-value/"- 結果のフルパスは、重複するスラッシュを排除するために正規化されます。 - 注意 : スラッシュを含む URI 変数値を - pathに挿入する場合、それらがエンコードされるかどうかは、構成されたエンコードモードによって異なります。詳細については、- encode()を参照してください。そうでない場合は、- WebClientまたは- RestTemplateを介して間接的に URI を構築する場合は、その- encodingModeを参照してください。リファレンスドキュメントの URI エンコーディングセクションも参照してください。- 次で指定:
-  インターフェース UriBuilderのpath
- パラメーター:
- path- URI パス
 
- pathSegmentインターフェースからコピーされた説明:- UriBuilderパスセグメントを使用してパスに追加します。例:- builder.pathSegment("first-value", "second-value", "{id}").build("123") // Results is "/first-value/second-value/123"- スラッシュがパスセグメントに存在する場合、エンコードされます。 - builder.pathSegment("ba/z", "{id}").build("a/b") // Results is "/ba%2Fz/a%2Fb"末尾にスラッシュを挿入するには、- UriBuilder.path(java.lang.String)ビルダーメソッドを使用します。- builder.pathSegment("first-value", "second-value").path("/") // Results is "/first-value/second-value/"- 空のパスセグメントは無視されるため、結果のフルパスに重複するスラッシュは表示されません。 - 次で指定:
-  インターフェース UriBuilderのpathSegment
- パラメーター:
- pathSegments- URI パスセグメント
- 例外:
- IllegalArgumentExceptionSE
 
- replacePathインターフェースからコピーされた説明:- UriBuilder現在のパスを上書きします。- 次で指定:
-  インターフェース UriBuilderのreplacePath
- パラメーター:
- path- URI パス、または空のパスの場合は- null
 
- queryインターフェースからコピーされた説明:- UriBuilder指定されたクエリ文字列をクエリパラメーターに解析します。パラメーターは- '&'で区切られ、その値がある場合は- '='で区切られます。クエリには、URI テンプレート変数が含まれる場合があります。- 注: は、 - UriBuilder.queryParam(String, Object...)の Javadoc を参照して、個々のクエリパラメーターの処理とエンコードに関する詳細を確認してください。- 次で指定:
-  インターフェース UriBuilderのquery
- パラメーター:
- query- クエリ文字列
 
- replaceQueryインターフェースからコピーされた説明:- UriBuilder既存のクエリパラメーターをクリアしてから、- UriBuilder.query(String)に委譲します。- 注: は、 - UriBuilder.queryParam(String, Object...)の Javadoc を参照して、個々のクエリパラメーターの処理とエンコードに関する詳細を確認してください。- 次で指定:
-  インターフェース UriBuilderのreplaceQuery
- パラメーター:
- query- クエリ文字列。- null値は、すべてのクエリパラメーターを削除します。
 
- queryParamインターフェースからコピーされた説明:- UriBuilder指定されたクエリパラメーターを追加します。パラメーター名と値の両方に、後で値から展開される URI テンプレート変数を含めることができます。値が指定されていない場合、結果の URI にはクエリパラメーター名のみが含まれます。- "?foo=bar"の代わりに- "?foo"。- 注意 : エンコードが適用される場合、 - "="や- "&"などのクエリパラメーター名または値で無効な文字のみがエンコードされます。RFC 3986 の構文規則に従って正当な他のすべてはエンコードされません。これには、エンコードされたスペースとしての解釈を避けるためにエンコードされる必要がある場合がある- "+"が含まれます。URI テンプレート変数と変数値のより厳密なエンコーディングを使用して、より厳密なエンコーディングを適用できます。詳細については、Spring Framework リファレンスの「URI エンコーディング」セクションを参照してください。- 次で指定:
-  インターフェース UriBuilderのqueryParam
- パラメーター:
- name- クエリパラメーター名
- values- クエリパラメーター値
- 関連事項:
 
- queryParamインターフェースからコピーされた説明:- UriBuilderコレクションを持つ- UriBuilder.queryParam(String, Object...)のバリアント。- 注: は、 - UriBuilder.queryParam(String, Object...)の Javadoc を参照して、個々のクエリパラメーターの処理とエンコードに関する詳細を確認してください。- 次で指定:
-  インターフェース UriBuilderのqueryParam
- パラメーター:
- name- クエリパラメーター名
- values- クエリパラメーター値
- 関連事項:
 
- queryParamIfPresentインターフェースからコピーされた説明:- UriBuilder指定された- OptionalSE に値がある場合は、- UriBuilder.queryParam(String, Object...)または- UriBuilder.queryParam(String, Collection)のいずれかにデリゲートします。値が空の場合は、クエリパラメーターはまったく追加されません。- 次で指定:
-  インターフェース UriBuilderのqueryParamIfPresent
- パラメーター:
- name- クエリパラメーター名
- value- オプション。空であるか、クエリパラメーター値を保持しています。
 
- queryParams複数のクエリパラメーターと値を追加します。- 注: は、 - UriBuilder.queryParam(String, Object...)の Javadoc を参照して、個々のクエリパラメーターの処理とエンコードに関する詳細を確認してください。- 次で指定:
-  インターフェース UriBuilderのqueryParams
- パラメーター:
- params- パラメーター
- 導入:
- 4.0
 
- replaceQueryParamインターフェースからコピーされた説明:- UriBuilder既存の値を置き換えるクエリパラメーター値を設定します。値が指定されていない場合、クエリパラメーターは削除されます。- 注: は、 - UriBuilder.queryParam(String, Object...)の Javadoc を参照して、個々のクエリパラメーターの処理とエンコードに関する詳細を確認してください。- 次で指定:
-  インターフェース UriBuilderのreplaceQueryParam
- パラメーター:
- name- クエリパラメーター名
- values- クエリパラメーター値
- 関連事項:
 
- replaceQueryParamインターフェースからコピーされた説明:- UriBuilderコレクションを持つ- UriBuilder.replaceQueryParam(String, Object...)のバリアント。- 注: は、 - UriBuilder.queryParam(String, Object...)の Javadoc を参照して、個々のクエリパラメーターの処理とエンコードに関する詳細を確認してください。- 次で指定:
-  インターフェース UriBuilderのreplaceQueryParam
- パラメーター:
- name- クエリパラメーター名
- values- クエリパラメーター値
- 関連事項:
 
- replaceQueryParams既存の値をすべて削除した後、クエリパラメーター値を設定します。- 注: は、 - UriBuilder.queryParam(String, Object...)の Javadoc を参照して、個々のクエリパラメーターの処理とエンコードに関する詳細を確認してください。- 次で指定:
-  インターフェース UriBuilderのreplaceQueryParams
- パラメーター:
- params- クエリパラメーター名
- 導入:
- 4.2
 
- fragmentインターフェースからコピーされた説明:- UriBuilderURI フラグメントを設定します。指定されたフラグメントには URI テンプレート変数が含まれる場合があり、このビルダーのフラグメントをクリアするために- nullになる場合もあります。- 次で指定:
-  インターフェース UriBuilderのfragment
- パラメーター:
- fragment- URI フラグメント
 
- uriVariablesビルド時に展開される URI 変数を構成します。- 指定された変数は、必要なすべての変数のサブセットである場合があります。ビルド時には、利用可能なものが展開されますが、未解決の URI プレースホルダーはそのまま残り、後で展開できます。 - UriComponents.expand(Map)または- buildAndExpand(Map)とは対照的に、このメソッドは、- UriComponentsインスタンスをまだ構築せずに URI 変数を提供する必要がある場合、またはホストやポートなどの共有デフォルト値を事前に展開する場合に便利です。- パラメーター:
- uriVariables- 使用する URI 変数
- 戻り値:
- この UriComponentsBuilder
- 導入:
- 5.0.8
 
- cloneオブジェクトの- clone()メソッドのパブリック宣言。- cloneBuilder()へのデリゲート。
- cloneBuilderこの- UriComponentsBuilderを複製します。- 戻り値:
-  クローン化された UriComponentsBuilderオブジェクト
- 導入:
- 4.2.7
 
 
ForwardedHeaderUtils.adaptFromForwardedHeaders(java.net.URI, org.springframework.http.HttpHeaders)を推奨します。6.2 で削除予定