public class UriComponentsBuilder extends ObjectSE implements UriBuilder, CloneableSE
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 インスタンスを作成する build() のバリアント。 |
URISE | build ( MapSE < StringSE ,?> uriVariables) URI SE インスタンスを構築し、URI テンプレート変数をマップの値で置き換えます。 |
URISE | build ( ObjectSE ... uriVariables) URI SE インスタンスを構築し、URI テンプレート変数を配列の値で置き換えます。 |
UriComponents | buildAndExpand ( MapSE < StringSE ,?> uriVariables) UriComponents インスタンスを作成し、URI テンプレート変数をマップの値で置き換えます。 |
UriComponents | buildAndExpand ( ObjectSE ... uriVariableValues) UriComponents インスタンスを構築し、URI テンプレート変数を配列の値で置き換えます。 |
ObjectSE | clone () オブジェクトの clone() メソッドのパブリック宣言。 |
UriComponentsBuilder | cloneBuilder () この UriComponentsBuilder を複製します。 |
UriComponentsBuilder | encode () ビルド時に URI テンプレートを事前にエンコードし、展開時に URI 変数を個別にエンコードするようリクエストします。 |
UriComponentsBuilder | encode ( CharsetSE charset) 「UTF-8」以外の文字セットを持つ encode() のバリアント。 |
UriComponentsBuilder | fragment ( StringSE fragment) URI フラグメントを設定します。 |
static UriComponentsBuilder | fromHttpRequest ( HttpRequest request) 指定された HttpRequest に関連付けられた URI から新しい UriComponents オブジェクトを作成すると同時に、ヘッダー「Forwarded」( RFC 7239 )、または「X-Forwarded-Host」、「X-Forwarded-Port」、および「X-Forwarded 「転送」が見つからない場合は「プロト」。 |
static UriComponentsBuilder | fromHttpUrl ( StringSE httpUrl) 指定された HTTP URL 文字列から URI コンポーネントビルダーを作成します。 |
static UriComponentsBuilder | fromOriginHeader ( StringSE origin) HTTP リクエストの「Origin」ヘッダーを解析してインスタンスを作成します。 |
static UriComponentsBuilder | fromPath ( StringSE path) 指定されたパスで初期化されるビルダーを作成します。 |
static UriComponentsBuilder | fromUri ( URISE uri) 指定された URI から初期化されるビルダーを作成します。 |
static UriComponentsBuilder | fromUriString ( StringSE uri) 指定された URI 文字列で初期化されるビルダーを作成します。 |
UriComponentsBuilder | host ( StringSE host) URI テンプレート変数を含む URI ホストを設定します。このビルダーのホストをクリアするには、 null にすることもできます。 |
static UriComponentsBuilder | newInstance () 新しい空のビルダーを作成します。 |
UriComponentsBuilder | path ( StringSE path) このビルダーのパスに追加します。 |
UriComponentsBuilder | pathSegment ( StringSE ... pathSegments) パスセグメントを使用してパスに追加します。 |
UriComponentsBuilder | port (int port) URI ポートを設定します。 |
UriComponentsBuilder | port ( StringSE port) URI ポートを設定します。 |
UriComponentsBuilder | query ( StringSE query) 指定されたクエリ文字列をクエリパラメーターに解析します。パラメーターは '&' で区切られ、その値がある場合は '=' で区切られます。 |
UriComponentsBuilder | queryParam ( StringSE name, CollectionSE <?> values) コレクションを持つ UriBuilder.queryParam(String, Object...) のバリアント。 |
UriComponentsBuilder | queryParam ( StringSE name, ObjectSE ... values) 指定されたクエリパラメーターを追加します。 |
UriComponentsBuilder | queryParams ( MultiValueMap < StringSE , StringSE > params) 複数のクエリパラメーターと値を追加します。 |
UriComponentsBuilder | replacePath ( StringSE path) 既存のパスを上書きします。 |
UriComponentsBuilder | replaceQuery ( StringSE query) 既存のクエリパラメーターをクリアしてから、 UriBuilder.query(String) に委譲します。 |
UriComponentsBuilder | replaceQueryParam ( StringSE name, CollectionSE <?> values) コレクションを持つ UriBuilder.replaceQueryParam(String, Object...) のバリアント。 |
UriComponentsBuilder | replaceQueryParam ( StringSE name, ObjectSE ... values) 既存の値を置き換えるクエリパラメーター値を設定します。値が指定されていない場合、クエリパラメーターは削除されます。 |
UriComponentsBuilder | replaceQueryParams ( MultiValueMap < StringSE , StringSE > params) 既存の値をすべて削除した後、クエリパラメーター値を設定します。 |
UriComponentsBuilder | scheme ( StringSE scheme) URI テンプレート変数を含む URI スキームを設定します。このビルダーのスキームをクリアするには、 null にすることもできます。 |
UriComponentsBuilder | schemeSpecificPart ( StringSE ssp) URI スキーム固有部分を設定します。 |
StringSE | toUriString () URI 文字列を作成します。 |
UriComponentsBuilder | uri ( URISE uri) 指定された URI のコンポーネントからこのビルダーのコンポーネントを初期化します。 |
UriComponentsBuilder | uriComponents ( UriComponents uriComponents) 指定された UriComponents インスタンスの値から、このビルダーの個々の URI コンポーネントを設定または追加します。 |
UriComponentsBuilder | uriVariables ( MapSE < StringSE , ObjectSE > uriVariables) ビルド時に展開される URI 変数を構成します。 |
UriComponentsBuilder | userInfo ( StringSE userInfo) URI テンプレート変数を含む URI ユーザー情報を設定します。このビルダーのユーザー情報をクリアするには、 null にすることもできます。 |
equalsSE , finalizeSE , getClassSE , hashCodeSE , notifySE , notifyAllSE , toStringSE , waitSE , waitSE , waitSE
protected UriComponentsBuilder()
protected UriComponentsBuilder(UriComponentsBuilder other)
other
- コピー元の他のビルダー public static UriComponentsBuilder newInstance()
UriComponentsBuilder
public static UriComponentsBuilder fromPath(StringSE path)
path
- 初期化するパス UriComponentsBuilder
public static UriComponentsBuilder fromUri(URISE uri)
URI
から初期化されるビルダーを作成します。 注意 : 結果のビルダーのコンポーネントは完全にエンコードされた(未加工)フォームになり、さらに変更を加えると、たとえば UriUtils
のメソッドを介して、完全にエンコードされた値を提供する必要があります。さらに、コンポーネントがエンコードされていることを示すために、値が「true」の build(boolean)
を使用して UriComponents
インスタンスを構築してください。
uri
- 初期化する URIUriComponentsBuilder
public static UriComponentsBuilder fromUriString(StringSE uri)
注意 : 予約文字の存在は、URI 文字列の正しい解析を妨げる可能性があります。たとえば、クエリパラメーターに '='
または '&'
文字が含まれている場合、クエリ文字列を明確に解析することはできません。正しい解析を可能にするために、そのような値を URI 変数に置き換える必要があります。
String uriString = "/hotels/42?filter={value}"; UriComponentsBuilder.fromUriString(uriString).buildAndExpand("hot&cold");
uri
- 初期化する URI 文字列 UriComponentsBuilder
public static UriComponentsBuilder fromHttpUrl(StringSE 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(StringSE origin)
public final UriComponentsBuilder encode()
UriComponents.encode()
と比較すると、このメソッドは URI テンプレートに対して同じ効果があります。つまり、各 URI コンポーネントは、非 ASCII 文字および不正な(URI コンポーネントタイプ内の)文字をエスケープされたオクテットに置き換えることでエンコードされます。ただし、URI 変数はより厳密にエンコードされており、予約された意味を持つ文字もエスケープされます。
ほとんどの場合、このメソッドは URI 変数を完全にエンコードされる不透明なデータとして扱うため、期待される結果が得られる可能性が高くなりますが、UriComponents.encode()
は予約文字を含む URI 変数を意図的に展開する場合にのみ有用です。
たとえば ';' パスでは有効ですが、意味は予約されています。このメソッドは「;」を置き換えます。URI 変数には「%3B」が含まれますが、URI テンプレートには含まれません。対照的に、UriComponents.encode()
は「;」を置き換えません。それはパス内の正当な文字です。
public UriComponentsBuilder encode(CharsetSE charset)
encode()
のバリアント。charset
- エンコードに使用する文字セット public UriComponents build()
UriComponents
インスタンスを構築します。public UriComponents build(boolean encoded)
UriComponents
インスタンスを作成する build()
のバリアント。これは、ビルダーが fromUri(URI)
を介して作成された場合などに役立ちます。encoded
- このビルダーのコンポーネントがすでにエンコードされているかどうか IllegalArgumentExceptionSE
- エンコードされているはずの不正な文字がコンポーネントに含まれている場合。public UriComponents buildAndExpand(MapSE<StringSE,?> uriVariables)
UriComponents
インスタンスを作成し、URI テンプレート変数をマップの値で置き換えます。これは、build()
への呼び出しと UriComponents.expand(Map)
への呼び出しを組み合わせたショートカットメソッドです。uriVariables
- URI 変数のマップ public UriComponents buildAndExpand(ObjectSE... uriVariableValues)
UriComponents
インスタンスを構築し、URI テンプレート変数を配列の値で置き換えます。これは、build()
への呼び出しと UriComponents.expand(Object...)
への呼び出しを組み合わせたショートカットメソッドです。uriVariableValues
- URI 変数値 public URISE build(ObjectSE... uriVariables)
UriBuilder
URI
SE インスタンスを構築し、URI テンプレート変数を配列の値で置き換えます。 UriBuilder
の build
uriVariables
- URI 変数のマップ public URISE build(MapSE<StringSE,?> uriVariables)
UriBuilder
URI
SE インスタンスを構築し、URI テンプレート変数をマップの値で置き換えます。 UriBuilder
の build
uriVariables
- URI 変数のマップ public StringSE toUriString()
事実上、文字列表現を構築、エンコード、返すためのショートカット:
String uri = builder.build().encode().toUriString()
ただし、URI variables
が提供されている場合、URI テンプレートは URI 変数とは別に事前にエンコードされます(詳細については encode()
を参照)。
String uri = builder.encode().build().toUriString()
UriComponents.toUriString()
public UriComponentsBuilder uri(URISE uri)
uri
- URIpublic UriComponentsBuilder uriComponents(UriComponents uriComponents)
UriComponents
インスタンスの値から、このビルダーの個々の URI コンポーネントを設定または追加します。 各コンポーネントのセマンティクス(つまり、設定と追加)については、このクラスのビルダーメソッドを確認してください。たとえば、host(String)
が設定され、path(String)
が追加されます。
uriComponents
- コピー元の UriComponentspublic UriComponentsBuilder scheme(@Nullable StringSE scheme)
UriBuilder
null
にすることもできます。 UriBuilder
の scheme
scheme
- URI スキーム public UriComponentsBuilder schemeSpecificPart(StringSE ssp)
ssp
- URI スキーム固有部分には、URI テンプレートパラメーターが含まれる場合があります public UriComponentsBuilder userInfo(@Nullable StringSE userInfo)
UriBuilder
null
にすることもできます。 UriBuilder
の userInfo
userInfo
- URI ユーザー情報 public UriComponentsBuilder host(@Nullable StringSE host)
UriBuilder
null
にすることもできます。 UriBuilder
の host
host
- URI ホスト public UriComponentsBuilder port(int port)
UriBuilder
-1
を渡すと、このビルダーのポートがクリアされます。 UriBuilder
の port
port
- URI ポート public UriComponentsBuilder port(@Nullable StringSE port)
UriBuilder
UriBuilder.port(int)
を使用します。null
を渡すと、このビルダーのポートがクリアされます。 UriBuilder
の port
port
- URI ポート public UriComponentsBuilder path(StringSE path)
UriBuilder
指定された値は、重複をクリーンアップする以外のスラッシュのチェックなしで、そのまま追加されます。例:
builder.path("/first-").path("value/").path("/{id}").build("123") // Results is "/first-value/123"
対照的に、UriBuilder.pathSegment(String...)
は個々のパスセグメントからパスを作成し、その場合、スラッシュは透過的に挿入されます。場合によっては、pathSegment
と path
の両方を組み合わせて使用することがあります。例:
builder.pathSegment("first-value", "second-value").path("/") // Results is "/first-value/second-value/"
URI 変数の値にスラッシュが含まれている場合、スラッシュがエンコードされるかどうかは、構成されたエンコードモードによって異なります。 encode()
を参照してください。DefaultUriBuilderFactory
を介して UriComponentsBuilder
を使用している場合(WebClient
または RestTemplate
など)、encodingMode
プロパティを参照してください。リファレンスドキュメントの URI エンコーディングセクションも参照してください。
UriBuilder
の path
path
- URI パス public UriComponentsBuilder pathSegment(StringSE... pathSegments) throws IllegalArgumentExceptionSE
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
public UriComponentsBuilder replacePath(@Nullable StringSE path)
UriBuilder
UriBuilder
の replacePath
path
- URI パス、または空のパスの場合は null
public UriComponentsBuilder query(@Nullable StringSE query)
UriBuilder
'&'
で区切られ、その値がある場合は '='
で区切られます。クエリには、URI テンプレート変数が含まれる場合があります。 注: は、UriBuilder.queryParam(String, Object...)
の Javadoc を参照して、個々のクエリパラメーターの処理とエンコードに関する詳細を確認してください。
UriBuilder
の query
query
- クエリ文字列 public UriComponentsBuilder replaceQuery(@Nullable StringSE query)
UriBuilder
UriBuilder.query(String)
に委譲します。 注: は、UriBuilder.queryParam(String, Object...)
の Javadoc を参照して、個々のクエリパラメーターの処理とエンコードに関する詳細を確認してください。
UriBuilder
の replaceQuery
query
- クエリ文字列。null
値は、すべてのクエリパラメーターを削除します。public UriComponentsBuilder queryParam(StringSE name, ObjectSE... values)
UriBuilder
"?foo=bar"
の代わりに "?foo"
。 注意 : エンコードが適用される場合、"="
や "&"
などのクエリパラメーター名または値で無効な文字のみがエンコードされます。 RFC 3986 の構文規則に従って正当な他のすべてはエンコードされません。これには、エンコードされたスペースとしての解釈を避けるためにエンコードされる必要がある場合がある "+"
が含まれます。URI テンプレート変数と変数値のより厳密なエンコーディングを使用して、より厳密なエンコーディングを適用できます。詳細については、Spring Framework リファレンスの「URI エンコーディング」セクションを参照してください。
UriBuilder
の queryParam
name
- クエリパラメーター名 values
- クエリパラメーター値 UriBuilder.queryParam(String, Collection)
public UriComponentsBuilder queryParam(StringSE name, @Nullable CollectionSE<?> values)
UriBuilder
UriBuilder.queryParam(String, Object...)
のバリアント。 注: は、UriBuilder.queryParam(String, Object...)
の Javadoc を参照して、個々のクエリパラメーターの処理とエンコードに関する詳細を確認してください。
UriBuilder
の queryParam
name
- クエリパラメーター名 values
- クエリパラメーター値 UriBuilder.queryParam(String, Object...)
public UriComponentsBuilder queryParams(@Nullable MultiValueMap<StringSE,StringSE> params)
注: は、UriBuilder.queryParam(String, Object...)
の Javadoc を参照して、個々のクエリパラメーターの処理とエンコードに関する詳細を確認してください。
UriBuilder
の queryParams
params
- パラメーター public UriComponentsBuilder replaceQueryParam(StringSE name, ObjectSE... values)
UriBuilder
注: は、UriBuilder.queryParam(String, Object...)
の Javadoc を参照して、個々のクエリパラメーターの処理とエンコードに関する詳細を確認してください。
UriBuilder
の replaceQueryParam
name
- クエリパラメーター名 values
- クエリパラメーター値 UriBuilder.replaceQueryParam(String, Collection)
public UriComponentsBuilder replaceQueryParam(StringSE name, @Nullable CollectionSE<?> values)
UriBuilder
UriBuilder.replaceQueryParam(String, Object...)
のバリアント。 注: は、UriBuilder.queryParam(String, Object...)
の Javadoc を参照して、個々のクエリパラメーターの処理とエンコードに関する詳細を確認してください。
UriBuilder
の replaceQueryParam
name
- クエリパラメーター名 values
- クエリパラメーター値 UriBuilder.replaceQueryParam(String, Object...)
public UriComponentsBuilder replaceQueryParams(@Nullable MultiValueMap<StringSE,StringSE> params)
注: は、UriBuilder.queryParam(String, Object...)
の Javadoc を参照して、個々のクエリパラメーターの処理とエンコードに関する詳細を確認してください。
UriBuilder
の replaceQueryParams
params
- クエリパラメーター名 public UriComponentsBuilder fragment(@Nullable StringSE fragment)
UriBuilder
null
になる場合もあります。 UriBuilder
の fragment
fragment
- URI フラグメント public UriComponentsBuilder uriVariables(MapSE<StringSE,ObjectSE> uriVariables)
指定された変数は、必要なすべての変数のサブセットである場合があります。ビルド時には、利用可能なものが展開されますが、未解決の URI プレースホルダーはそのまま残り、後で展開できます。
UriComponents.expand(Map)
または buildAndExpand(Map)
とは対照的に、このメソッドは、UriComponents
インスタンスをまだ構築せずに URI 変数を提供する必要がある場合、またはホストやポートなどの共有デフォルト値を事前に展開する場合に便利です。
uriVariables
- 使用する URI 変数 public ObjectSE clone()
clone()
メソッドのパブリック宣言。 cloneBuilder()
へのデリゲート。public UriComponentsBuilder cloneBuilder()
UriComponentsBuilder
を複製します。UriComponentsBuilder
オブジェクト