Package org.eclipse.jetty.http
Class HttpURI
- java.lang.Object
-
- org.eclipse.jetty.http.HttpURI
-
public class HttpURI extends java.lang.Object
Http URI. Parse an HTTP URI from a string or byte array. Given a URIhttp://user@host:port/path/info;param?query#fragment
this class will split it into the following undecoded optional elements:getScheme()
- http:getAuthority()
- //name@host:portgetHost()
- hostgetPort()
- portgetPath()
- /path/infogetParam()
- paramgetQuery()
- querygetFragment()
- fragment
Any parameters will be returned from
getPath()
, but are excluded from the return value ofgetDecodedPath()
. If there are multiple parameters, thegetParam()
method returns only the last one.
-
-
Constructor Summary
Constructors Constructor Description HttpURI()
HttpURI(java.lang.String uri)
HttpURI(java.lang.String scheme, java.lang.String host, int port, java.lang.String pathQuery)
HttpURI(java.lang.String scheme, java.lang.String host, int port, java.lang.String path, java.lang.String param, java.lang.String query, java.lang.String fragment)
HttpURI(java.net.URI uri)
HttpURI(HttpURI uri)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description void
clear()
static HttpURI
createHttpURI(java.lang.String scheme, java.lang.String host, int port, java.lang.String path, java.lang.String param, java.lang.String query, java.lang.String fragment)
Construct a normalized URI.void
decodeQueryTo(MultiMap<java.lang.String> parameters)
void
decodeQueryTo(MultiMap<java.lang.String> parameters, java.lang.String encoding)
void
decodeQueryTo(MultiMap<java.lang.String> parameters, java.nio.charset.Charset encoding)
boolean
equals(java.lang.Object o)
java.lang.String
getAuthority()
java.lang.String
getDecodedPath()
java.lang.String
getFragment()
java.lang.String
getHost()
java.lang.String
getParam()
java.lang.String
getPath()
The parsed Path.java.lang.String
getPathQuery()
int
getPort()
java.lang.String
getQuery()
java.lang.String
getScheme()
java.lang.String
getUser()
boolean
hasAmbiguousParameter()
boolean
hasAmbiguousSegment()
boolean
hasAmbiguousSeparator()
int
hashCode()
boolean
hasQuery()
boolean
isAbsolute()
boolean
isAmbiguous()
void
parse(java.lang.String uri)
void
parse(java.lang.String uri, int offset, int length)
void
parseConnect(java.lang.String uri)
Deprecated.void
parseRequestTarget(java.lang.String method, java.lang.String uri)
Parse according to https://tools.ietf.org/html/rfc7230#section-5.3void
setAuthority(java.lang.String host, int port)
void
setParam(java.lang.String param)
void
setPath(java.lang.String path)
void
setPathQuery(java.lang.String pathQuery)
void
setQuery(java.lang.String query)
void
setScheme(java.lang.String scheme)
java.lang.String
toString()
java.net.URI
toURI()
-
-
-
Constructor Detail
-
HttpURI
public HttpURI()
-
HttpURI
public HttpURI(java.lang.String scheme, java.lang.String host, int port, java.lang.String path, java.lang.String param, java.lang.String query, java.lang.String fragment)
-
HttpURI
public HttpURI(HttpURI uri)
-
HttpURI
public HttpURI(java.lang.String uri)
-
HttpURI
public HttpURI(java.net.URI uri)
-
HttpURI
public HttpURI(java.lang.String scheme, java.lang.String host, int port, java.lang.String pathQuery)
-
-
Method Detail
-
createHttpURI
public static HttpURI createHttpURI(java.lang.String scheme, java.lang.String host, int port, java.lang.String path, java.lang.String param, java.lang.String query, java.lang.String fragment)
Construct a normalized URI. Port is not set if it is the default port.- Parameters:
scheme
- the URI schemehost
- the URI hoseport
- the URI portpath
- the URI pathparam
- the URI paramquery
- the URI queryfragment
- the URI fragment- Returns:
- the normalized URI
-
clear
public void clear()
-
parse
public void parse(java.lang.String uri)
-
parseRequestTarget
public void parseRequestTarget(java.lang.String method, java.lang.String uri)
Parse according to https://tools.ietf.org/html/rfc7230#section-5.3- Parameters:
method
- the request methoduri
- the request uri
-
parseConnect
@Deprecated public void parseConnect(java.lang.String uri)
Deprecated.
-
parse
public void parse(java.lang.String uri, int offset, int length)
-
hasAmbiguousSegment
public boolean hasAmbiguousSegment()
- Returns:
- True if the URI has a possibly ambiguous segment like '..;' or '%2e%2e'
-
hasAmbiguousSeparator
public boolean hasAmbiguousSeparator()
- Returns:
- True if the URI has a possibly ambiguous separator of %2f
-
hasAmbiguousParameter
public boolean hasAmbiguousParameter()
- Returns:
- True if the URI has a possibly ambiguous path parameter like '..;'
-
isAmbiguous
public boolean isAmbiguous()
- Returns:
- True if the URI has either an
hasAmbiguousSegment()
orhasAmbiguousSeparator()
.
-
getScheme
public java.lang.String getScheme()
-
getHost
public java.lang.String getHost()
-
getPort
public int getPort()
-
getPath
public java.lang.String getPath()
The parsed Path.- Returns:
- the path as parsed on valid URI. null for invalid URI.
-
getDecodedPath
public java.lang.String getDecodedPath()
- Returns:
- The decoded canonical path.
- See Also:
URIUtil.canonicalPath(String)
-
getParam
public java.lang.String getParam()
-
setParam
public void setParam(java.lang.String param)
-
getQuery
public java.lang.String getQuery()
-
hasQuery
public boolean hasQuery()
-
getFragment
public java.lang.String getFragment()
-
decodeQueryTo
public void decodeQueryTo(MultiMap<java.lang.String> parameters)
-
decodeQueryTo
public void decodeQueryTo(MultiMap<java.lang.String> parameters, java.lang.String encoding) throws java.io.UnsupportedEncodingException
- Throws:
java.io.UnsupportedEncodingException
-
decodeQueryTo
public void decodeQueryTo(MultiMap<java.lang.String> parameters, java.nio.charset.Charset encoding) throws java.io.UnsupportedEncodingException
- Throws:
java.io.UnsupportedEncodingException
-
isAbsolute
public boolean isAbsolute()
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
equals
public boolean equals(java.lang.Object o)
- Overrides:
equals
in classjava.lang.Object
-
hashCode
public int hashCode()
- Overrides:
hashCode
in classjava.lang.Object
-
setScheme
public void setScheme(java.lang.String scheme)
-
setAuthority
public void setAuthority(java.lang.String host, int port)
- Parameters:
host
- the hostport
- the port
-
setPath
public void setPath(java.lang.String path)
- Parameters:
path
- the path
-
setPathQuery
public void setPathQuery(java.lang.String pathQuery)
-
setQuery
public void setQuery(java.lang.String query)
-
toURI
public java.net.URI toURI() throws java.net.URISyntaxException
- Throws:
java.net.URISyntaxException
-
getPathQuery
public java.lang.String getPathQuery()
-
getAuthority
public java.lang.String getAuthority()
-
getUser
public java.lang.String getUser()
-
-