Class HttpURL
- All Implemented Interfaces:
Serializable
URL class. It can also be used as a safer way
to build a URL or a URI instance as it will properly escape
appropriate characters before creating those.- See Also:
-
Field Summary
Fields -
Constructor Summary
ConstructorsConstructorDescriptionHttpURL()Creates a blank HttpURL using UTF-8 for URL encoding.Creates a new HttpURL from the URL string using UTF-8 for URL encoding.Creates a new HttpURL from the URL string using the provided encoding for URL encoding.Creates a new HttpURL from the URL object using UTF-8 for URL encoding.Creates a new HttpURL from the URL object using the provided encoding for URL encoding. -
Method Summary
Modifier and TypeMethodDescriptionprotected booleanstatic StringencodePath(String path) URL-Encodes a URL path.static StringencodeQueryString(String queryString) URL-Encodes the query string portion of a URL.booleanGets the character encoding.Gets the URL fragment.getHost()Gets the host portion of the URL.Gets the last URL path segment without the query string.getPath()Gets the URL path.intgetPort()Gets the URL port as explicitly provided.Gets the protocol portion of the URL (e.g. http, https);Gets the URL query string.intResolves the actual URL port.getRoot()Gets the root of a URL.static StringGets the root of a URL.inthashCode()booleanWhether this URL uses the default port for the protocol.booleanisSecure()Whether this URL is secure (e.g. https).setFragment(String fragment) Sets the URL fragment.Sets the host portion of the URL.Sets the URL path.setPort(int port) Sets the URL port.setProtocol(String protocol) Sets the protocol portion of the URL.setQueryString(QueryString queryString) Sets the URL query string, replacing this URL existing query string parameters with the ones from the supplied query string (the original query string instance is kept).static StringtoAbsolute(String baseURL, String relativeURL) Converts a relative URL to an absolute one, based on the supplied base URL.toString()Returns a string representation of this URL, properly encoded.toURI()Converts this HttpURL to aURI, making sure appropriate characters are escaped properly.static URIConverts the supplied URL to aURI, making sure appropriate characters are encoded properly using UTF-8.toURL()Converts this HttpURL to a regularURL, making sure appropriate characters are escaped properly.static URLConverts the supplied URL to aURL, making sure appropriate characters are encoded properly using UTF-8.
-
Field Details
-
DEFAULT_HTTP_PORT
public static final int DEFAULT_HTTP_PORTDefault URL HTTP Port.- See Also:
-
DEFAULT_HTTPS_PORT
public static final int DEFAULT_HTTPS_PORTDefault Secure URL HTTP Port.- See Also:
-
PROTOCOL_HTTP
Constant for "http" protocol.- See Also:
-
PROTOCOL_HTTPS
Constant for "https" protocol.- See Also:
-
-
Constructor Details
-
HttpURL
public HttpURL()Creates a blank HttpURL using UTF-8 for URL encoding. -
HttpURL
Creates a new HttpURL from the URL object using UTF-8 for URL encoding.- Parameters:
url- a URL
-
HttpURL
Creates a new HttpURL from the URL string using UTF-8 for URL encoding.- Parameters:
url- a URL
-
HttpURL
Creates a new HttpURL from the URL object using the provided encoding for URL encoding.- Parameters:
url- a URLencoding- character encoding- Since:
- 1.7.0
-
HttpURL
Creates a new HttpURL from the URL string using the provided encoding for URL encoding.- Parameters:
url- a URL stringencoding- character encoding- Since:
- 1.7.0
-
-
Method Details
-
getEncoding
Gets the character encoding. Default is UTF-8.- Returns:
- character encoding
- Since:
- 1.7.0
-
getPath
Gets the URL path.- Returns:
- URL path
-
setPath
Sets the URL path.- Parameters:
path- url path- Returns:
- this instance
-
getQueryString
Gets the URL query string. Changes to the returned query string will be applied to this URL query string. A URL without a query string returns an empty query string.- Returns:
- URL query string, never
null
-
setQueryString
Sets the URL query string, replacing this URL existing query string parameters with the ones from the supplied query string (the original query string instance is kept).- Parameters:
queryString- the query string- Returns:
- this instance
-
getHost
Gets the host portion of the URL.- Returns:
- the host portion of the URL
-
setHost
Sets the host portion of the URL.- Parameters:
host- the host portion of the URL- Returns:
- this instance
-
getProtocol
Gets the protocol portion of the URL (e.g. http, https);- Returns:
- the protocol portion of the URL
-
setProtocol
Sets the protocol portion of the URL.- Parameters:
protocol- the protocol portion of the URL- Returns:
- this instance
-
isSecure
public boolean isSecure()Whether this URL is secure (e.g. https).- Returns:
trueif protocol is secure
-
getPort
public int getPort()Gets the URL port as explicitly provided. If no port was provided in the URL string or set viasetPort(int), -1 is returned.- Returns:
- the URL port
-
setPort
Sets the URL port. Use -1 to indicate no explicit port should be used.- Parameters:
port- the URL port- Returns:
- this instance
-
getResolvedPort
public int getResolvedPort()Resolves the actual URL port. Returns the explicit port if one was provided; otherwise, returns the default port based on the protocol (80 for http, 443 for https).- Returns:
- resolved port
-
getFragment
Gets the URL fragment.- Returns:
- the fragment
- Since:
- 1.8.0
-
setFragment
Sets the URL fragment.- Parameters:
fragment- the fragment to set- Returns:
- this instance
- Since:
- 1.8.0
-
getLastPathSegment
Gets the last URL path segment without the query string. If there are no segment to return, an empty string will be returned instead.- Returns:
- the last URL path segment
-
toURL
Converts this HttpURL to a regularURL, making sure appropriate characters are escaped properly.- Returns:
- a URL
- Throws:
UrlException- when URL is malformed
-
getRoot
Gets the root of a URL. That is the left part of a URL up to and including the host name. If a URL is only made of the scheme and host name, it is returned unchanged. A
nullor empty string returns anulldocument root.- Returns:
- left part of a URL up to (and including) the host name or
null - Throws:
UrlException- when URL is malformed- Since:
- 1.8.0
-
toURI
Converts this HttpURL to aURI, making sure appropriate characters are escaped properly.- Returns:
- a URI
- Throws:
UrlException- when URL is malformed- Since:
- 1.7.0
-
toURL
Converts the supplied URL to a
URL, making sure appropriate characters are encoded properly using UTF-8. This method is a short form of:
new HttpURL("http://example.com").toURL();- Parameters:
url- a URL string- Returns:
- a URL object
- Throws:
UrlException- when URL is malformed- Since:
- 1.7.0
-
toURI
Converts the supplied URL to a
URI, making sure appropriate characters are encoded properly using UTF-8. This method is a short form of:
new HttpURL("http://example.com").toURI();- Parameters:
url- a URL string- Returns:
- a URI object
- Throws:
UrlException- when URL is malformed- Since:
- 1.7.0
-
getRoot
Gets the root of a URL. That is the left part of a URL up to and including the host name. If a URL is only made of the scheme and host name, it is returned unchanged. A
nullor empty string returns anulldocument root. This method is a short form of:
new HttpURL("http://example.com/path").getRoot();- Parameters:
url- a URL string- Returns:
- left part of a URL up to (and including) the host name
- Since:
- 1.8.0
-
toString
Returns a string representation of this URL, properly encoded. -
isPortDefault
public boolean isPortDefault()Whether this URL uses the default port for the protocol. The default ports are 80 for "http" protocol, and 443 for "https" or -1 (resolved dynamically). Other protocols are not supported and this method will always return false for them.- Returns:
trueif the URL is using the default port.- Since:
- 1.8.0
-
encodeQueryString
URL-Encodes the query string portion of a URL. The entire string supplied is assumed to be a query string.
- Parameters:
queryString- URL query string- Returns:
- encoded path
- Since:
- 1.8.0
-
encodePath
URL-Encodes a URL path. The entire string supplied is assumed to be a URL path. Unsafe characters are percent-encoded using UTF-8 (as specified by W3C standard).
- Parameters:
path- path portion of a URL- Returns:
- encoded path
- Since:
- 1.7.0
-
toAbsolute
Converts a relative URL to an absolute one, based on the supplied base URL. The base URL is assumed to be a valid URL. Behavior is unexpected when base URL is invalid.
Since 2.0.1, supplying a
nullor blank relative URL will return the base URL.Since 2.0.1, if the relative URL starts with a scheme, it is considered an absolute URL and is returned as is after trim. The scheme is a string starting with a letter followed by any number of letters, numbers, plus sign (+), minus sign (-) or dot (.), followed by a colon (:).
- Parameters:
baseURL- URL to the reference is relative torelativeURL- the relative URL portion to transform to absolute- Returns:
- absolute URL
- Since:
- 1.8.0
-
equals
-
canEqual
-
hashCode
public int hashCode()
-