public class URIUtils
extends java.lang.Object
URIs
, to workaround
bugs within the class or for ease-of-use features.Modifier and Type | Class and Description |
---|---|
static class |
URIUtils.UriFlag
Flags that control how URI is being rewritten.
|
Modifier and Type | Field and Description |
---|---|
static java.util.EnumSet<URIUtils.UriFlag> |
DROP_FRAGMENT
Set of uri flags containing
URIUtils.UriFlag.DROP_FRAGMENT . |
static java.util.EnumSet<URIUtils.UriFlag> |
DROP_FRAGMENT_AND_NORMALIZE
Set of uri flags containing
URIUtils.UriFlag.DROP_FRAGMENT and URIUtils.UriFlag.NORMALIZE . |
static java.util.EnumSet<URIUtils.UriFlag> |
NO_FLAGS
Empty set of uri flags.
|
static java.util.EnumSet<URIUtils.UriFlag> |
NORMALIZE
Set of uri flags containing
URIUtils.UriFlag.NORMALIZE . |
Modifier | Constructor and Description |
---|---|
private |
URIUtils()
This class should not be instantiated.
|
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 org.apache.http.HttpHost |
extractHost(java.net.URI uri)
Extracts target host from the given
URI . |
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,
org.apache.http.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,
org.apache.http.HttpHost target)
A convenience method for
rewriteURI(URI, HttpHost, EnumSet) that always keeps the
fragment. |
static java.net.URI |
rewriteURI(java.net.URI uri,
org.apache.http.HttpHost target,
boolean dropFragment)
Deprecated.
(4.5.8) Use
rewriteURI(URI, HttpHost, EnumSet) |
static java.net.URI |
rewriteURI(java.net.URI uri,
org.apache.http.HttpHost target,
java.util.EnumSet<URIUtils.UriFlag> flags)
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. |
static java.net.URI |
rewriteURIForRoute(java.net.URI uri,
RouteInfo route,
boolean normalizeUri)
A convenience method that optionally converts the original
URI either
to a relative or an absolute form as required by the specified route. |
public static final java.util.EnumSet<URIUtils.UriFlag> NO_FLAGS
public static final java.util.EnumSet<URIUtils.UriFlag> DROP_FRAGMENT
URIUtils.UriFlag.DROP_FRAGMENT
.public static final java.util.EnumSet<URIUtils.UriFlag> NORMALIZE
URIUtils.UriFlag.NORMALIZE
.public static final java.util.EnumSet<URIUtils.UriFlag> DROP_FRAGMENT_AND_NORMALIZE
URIUtils.UriFlag.DROP_FRAGMENT
and URIUtils.UriFlag.NORMALIZE
.@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(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 authority@Deprecated public static java.net.URI rewriteURI(java.net.URI uri, org.apache.http.HttpHost target, boolean dropFragment) throws java.net.URISyntaxException
rewriteURI(URI, HttpHost, EnumSet)
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, org.apache.http.HttpHost target, java.util.EnumSet<URIUtils.UriFlag> flags) 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. What exactly is used and how
is driven by the passed in flags. 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.flags
- 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, org.apache.http.HttpHost target) throws java.net.URISyntaxException
rewriteURI(URI, HttpHost, EnumSet)
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 rewriteURIForRoute(java.net.URI uri, RouteInfo route, boolean normalizeUri) 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 referencepublic static java.net.URI normalizeSyntax(java.net.URI uri) throws java.net.URISyntaxException
uri
- the original URIjava.net.URISyntaxException
public static org.apache.http.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, org.apache.http.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