public class UriComponentsBuilder extends Object
UriComponents
.
Typical usage involves:
UriComponentsBuilder
with one of the static factory methods (such as
fromPath(String)
or fromUri(URI)
)scheme(String)
,
userInfo(String)
, host(String)
, port(int)
, path(String)
,
pathSegment(String...)
, queryParam(String, Object...)
, and
fragment(String)
.UriComponents
instance with the build()
method.newInstance()
,
fromPath(String)
,
fromUri(URI)
Modifier | Constructor and Description |
---|---|
protected |
UriComponentsBuilder()
Default constructor.
|
Modifier and Type | Method and Description |
---|---|
UriComponents |
build()
Builds a
UriComponents instance from the various components contained in this builder. |
UriComponents |
build(boolean encoded)
Builds a
UriComponents instance from the various components
contained in this builder. |
UriComponents |
buildAndExpand(Map<String,?> uriVariables)
Builds a
UriComponents instance and replaces URI template variables
with the values from a map. |
UriComponents |
buildAndExpand(Object... uriVariableValues)
Builds a
UriComponents instance and replaces URI template variables
with the values from an array. |
UriComponentsBuilder |
fragment(String fragment)
Sets the URI fragment.
|
static UriComponentsBuilder |
fromHttpUrl(String httpUrl)
Creates a new
UriComponents object from the string HTTP URL. |
static UriComponentsBuilder |
fromPath(String path)
Returns a builder that is initialized with the given path.
|
static UriComponentsBuilder |
fromUri(URI uri)
Returns a builder that is initialized with the given
URI . |
static UriComponentsBuilder |
fromUriString(String uri)
Returns a builder that is initialized with the given URI string.
|
UriComponentsBuilder |
host(String host)
Sets the URI host.
|
static UriComponentsBuilder |
newInstance()
Returns a new, empty builder.
|
UriComponentsBuilder |
path(String path)
Appends the given path to the existing path of this builder.
|
UriComponentsBuilder |
pathSegment(String... pathSegments)
Appends the given path segments to the existing path of this builder.
|
UriComponentsBuilder |
port(int port)
Sets the URI port.
|
UriComponentsBuilder |
query(String query)
Appends the given query to the existing query of this builder.
|
UriComponentsBuilder |
queryParam(String name,
Object... values)
Appends the given query parameter to the existing query parameters.
|
UriComponentsBuilder |
queryParams(MultiValueMap<String,String> params)
Adds the given query parameters.
|
UriComponentsBuilder |
replacePath(String path)
Sets the path of this builder overriding all existing path and path segment values.
|
UriComponentsBuilder |
replaceQuery(String query)
Sets the query of this builder overriding all existing query parameters.
|
UriComponentsBuilder |
replaceQueryParam(String name,
Object... values)
Sets the query parameter values overriding all existing query values for
the same parameter.
|
UriComponentsBuilder |
scheme(String scheme)
Sets the URI scheme.
|
UriComponentsBuilder |
schemeSpecificPart(String ssp)
Set the URI scheme-specific-part.
|
UriComponentsBuilder |
uri(URI uri)
Initializes all components of this URI builder with the components of the given URI.
|
UriComponentsBuilder |
uriComponents(UriComponents uriComponents)
Initializes all components of this URI builder from the given
UriComponents . |
UriComponentsBuilder |
userInfo(String userInfo)
Sets the URI user info.
|
protected UriComponentsBuilder()
newInstance()
,
fromPath(String)
,
fromUri(URI)
public static UriComponentsBuilder newInstance()
UriComponentsBuilder
public static UriComponentsBuilder fromPath(String path)
path
- the path to initialize withUriComponentsBuilder
public static UriComponentsBuilder fromUri(URI uri)
URI
.uri
- the URI to initialize withUriComponentsBuilder
public static UriComponentsBuilder fromUriString(String uri)
Note: The presence of reserved characters can prevent
correct parsing of the URI string. For example if a query parameter
contains '='
or '&'
characters, the query string cannot
be parsed unambiguously. Such values should be substituted for URI
variables to enable correct parsing:
String uriString = "/hotels/42?filter={value}"; UriComponentsBuilder.fromUriString(uriString).buildAndExpand("hot&cold");
uri
- the URI string to initialize withUriComponentsBuilder
public static UriComponentsBuilder fromHttpUrl(String httpUrl)
UriComponents
object from the string HTTP URL.
Note: The presence of reserved characters can prevent
correct parsing of the URI string. For example if a query parameter
contains '='
or '&'
characters, the query string cannot
be parsed unambiguously. Such values should be substituted for URI
variables to enable correct parsing:
String uriString = "/hotels/42?filter={value}"; UriComponentsBuilder.fromUriString(uriString).buildAndExpand("hot&cold");
httpUrl
- the source URIpublic UriComponents build()
UriComponents
instance from the various components contained in this builder.public UriComponents build(boolean encoded)
UriComponents
instance from the various components
contained in this builder.encoded
- whether all the components set in this builder are
encoded (true
) or not (false
).public UriComponents buildAndExpand(Map<String,?> uriVariables)
UriComponents
instance and replaces URI template variables
with the values from a map. This is a shortcut method, which combines
calls to build()
and then UriComponents.expand(Map)
.uriVariables
- the map of URI variablespublic UriComponents buildAndExpand(Object... uriVariableValues)
UriComponents
instance and replaces URI template variables
with the values from an array. This is a shortcut method, which combines
calls to build()
and then UriComponents.expand(Object...)
.uriVariableValues
- URI variable valuespublic UriComponentsBuilder uri(URI uri)
uri
- the URIpublic UriComponentsBuilder scheme(String scheme)
null
to clear the scheme of this builder.scheme
- the URI schemepublic UriComponentsBuilder uriComponents(UriComponents uriComponents)
UriComponents
.uriComponents
- the UriComponents instancepublic UriComponentsBuilder schemeSpecificPart(String ssp)
query
.ssp
- the URI scheme-specific-part, may contain URI template parameterspublic UriComponentsBuilder userInfo(String userInfo)
null
to clear the user info of this
builder.userInfo
- the URI user infopublic UriComponentsBuilder host(String host)
null
to clear the host of this builder.host
- the URI hostpublic UriComponentsBuilder port(int port)
-1
will clear the port of this builder.port
- the URI portpublic UriComponentsBuilder path(String path)
path
- the URI pathpublic UriComponentsBuilder replacePath(String path)
path
- the URI path; a null
value results in an empty path.public UriComponentsBuilder pathSegment(String... pathSegments) throws IllegalArgumentException
pathSegments
- the URI path segmentsIllegalArgumentException
public UriComponentsBuilder query(String query)
Note: The presence of reserved characters can prevent
correct parsing of the URI string. For example if a query parameter
contains '='
or '&'
characters, the query string cannot
be parsed unambiguously. Such values should be substituted for URI
variables to enable correct parsing:
String uriString = "/hotels/42?filter={value}"; UriComponentsBuilder.fromUriString(uriString).buildAndExpand("hot&cold");
query
- the query stringpublic UriComponentsBuilder replaceQuery(String query)
query
- the query string; a null
value removes all query parameters.public UriComponentsBuilder queryParam(String name, Object... values)
?foo
instead of ?foo=bar
.name
- the query parameter namevalues
- the query parameter valuespublic UriComponentsBuilder queryParams(MultiValueMap<String,String> params)
params
- the paramspublic UriComponentsBuilder replaceQueryParam(String name, Object... values)
name
- the query parameter namevalues
- the query parameter valuespublic UriComponentsBuilder fragment(String fragment)
null
to clear the fragment of this
builder.fragment
- the URI fragment