@Immutable public class URIUtils extends java.lang.Object
URIs
, to workaround
bugs within the class or for ease-of-use features.Modifier and Type | Method and Description |
---|---|
static java.net.URI |
createURI(java.lang.String scheme,
java.lang.String host,
int port,
java.lang.String path,
java.lang.String query,
java.lang.String fragment)
Deprecated.
(4.2) use
URIBuilder . |
static HttpHost |
extractHost(java.net.URI uri)
Extracts target host from the given
URI . |
(package private) static java.net.URI |
normalizeSyntax(java.net.URI uri)
Removes dot segments according to RFC 3986, section 5.2.4 and
Syntax-Based Normalization according to RFC 3986, section 6.2.2.
|
static java.net.URI |
resolve(java.net.URI originalURI,
HttpHost target,
java.util.List<java.net.URI> redirects)
Derives the interpreted (absolute) URI that was used to generate the last
request.
|
static java.net.URI |
resolve(java.net.URI baseURI,
java.lang.String reference)
Resolves a URI reference against a base URI.
|
static java.net.URI |
resolve(java.net.URI baseURI,
java.net.URI reference)
Resolves a URI reference against a base URI.
|
static java.net.URI |
rewriteURI(java.net.URI uri)
A convenience method that creates a new
URI whose scheme, host, port, path,
query are taken from the existing URI, dropping any fragment or user-information. |
static java.net.URI |
rewriteURI(java.net.URI uri,
HttpHost target)
A convenience method for
rewriteURI(URI, HttpHost, boolean) that always keeps the
fragment. |
static java.net.URI |
rewriteURI(java.net.URI uri,
HttpHost target,
boolean dropFragment)
A convenience method for creating a new
URI whose scheme, host
and port are taken from the target host, but whose path, query and
fragment are taken from the existing URI. |
static java.net.URI |
rewriteURIForRoute(java.net.URI uri,
RouteInfo route)
A convenience method that optionally converts the original
URI either
to a relative or an absolute form as required by the specified route. |
@Deprecated public static java.net.URI createURI(java.lang.String scheme, java.lang.String host, int port, java.lang.String path, java.lang.String query, java.lang.String fragment) throws java.net.URISyntaxException
URIBuilder
.URI
using all the parameters. This should be
used instead of
URI.URI(String, String, String, int, String, String, String)
or any of the other URI multi-argument URI constructors.scheme
- Scheme namehost
- Host nameport
- Port numberpath
- Pathquery
- Queryfragment
- Fragmentjava.net.URISyntaxException
- If both a scheme and a path are given but the path is
relative, if the URI string constructed from the given
components violates RFC 2396, or if the authority
component of the string is present but cannot be parsed
as a server-based authoritypublic static java.net.URI rewriteURI(java.net.URI uri, HttpHost target, boolean dropFragment) throws java.net.URISyntaxException
URI
whose scheme, host
and port are taken from the target host, but whose path, query and
fragment are taken from the existing URI. The fragment is only used if
dropFragment is false. The path is set to "/" if not explicitly specified.uri
- Contains the path, query and fragment to use.target
- Contains the scheme, host and port to use.dropFragment
- True if the fragment should not be copied.java.net.URISyntaxException
- If the resulting URI is invalid.public static java.net.URI rewriteURI(java.net.URI uri, HttpHost target) throws java.net.URISyntaxException
rewriteURI(URI, HttpHost, boolean)
that always keeps the
fragment.java.net.URISyntaxException
public static java.net.URI rewriteURI(java.net.URI uri) throws java.net.URISyntaxException
URI
whose scheme, host, port, path,
query are taken from the existing URI, dropping any fragment or user-information.
The path is set to "/" if not explicitly specified. The existing URI is returned
unmodified if it has no fragment or user-information and has a path.uri
- original URI.java.net.URISyntaxException
- If the resulting URI is invalid.public static java.net.URI rewriteURIForRoute(java.net.URI uri, RouteInfo route) throws java.net.URISyntaxException
URI
either
to a relative or an absolute form as required by the specified route.uri
- original URI.java.net.URISyntaxException
- If the resulting URI is invalid.public static java.net.URI resolve(java.net.URI baseURI, java.lang.String reference)
baseURI
- the base URIreference
- the URI referencepublic static java.net.URI resolve(java.net.URI baseURI, java.net.URI reference)
baseURI
- the base URIreference
- the URI referencestatic java.net.URI normalizeSyntax(java.net.URI uri) throws java.net.URISyntaxException
uri
- the original URIjava.net.URISyntaxException
public static HttpHost extractHost(java.net.URI uri)
URI
.uri
- null
if the URI is
relative or does not contain a valid host name.public static java.net.URI resolve(java.net.URI originalURI, HttpHost target, java.util.List<java.net.URI> redirects) throws java.net.URISyntaxException
URI
.originalURI
- original request before any redirectstarget
- if the last URI is relative, it is resolved against this target,
or null
if not available.redirects
- collection of redirect locations since the original request
or null
if not available.java.net.URISyntaxException