http_uri
URI utility module
This module provides utility functions for working with URIs,
according to
DATA TYPES
Type definitions that are used more than once in this module:
boolean() = true | false
string()
= list of ASCII characters
URI DATA TYPES
Type definitions that are related to URI:
uri() = string()
Syntax according to the URI definition in RFC 3986, for example, "http://www.erlang.org/"
user_info() = string()
scheme() = atom()
Example: http, https
host() = string()
port() = pos_integer()
path() = string()
Represents a file path or directory path
query() = string()
fragment() = string()
For more information about URI, see
Functions
decode(HexEncodedURI) -> URI
HexEncodedURI = string() - A possibly hexadecimal encoded URI
URI = uri()
Decodes a possibly hexadecimal encoded URI.
encode(URI) -> HexEncodedURI
URI = uri()
HexEncodedURI = string() - Hexadecimal encoded URI
Encodes a hexadecimal encoded URI.
parse(URI) -> {ok, Result} | {error, Reason}
parse(URI, Options) -> {ok, Result} | {error, Reason}
URI = uri()
Options = [Option]
Option = {ipv6_host_with_brackets, boolean()} | {scheme_defaults, scheme_defaults()} | {fragment, boolean()}]
Result = {Scheme, UserInfo, Host, Port, Path, Query} | {Scheme, UserInfo, Host, Port, Path, Query, Fragment}
UserInfo = user_info()
Host = host()
Port = pos_integer()
Path = path()
Query = query()
Fragment = fragment()
Reason = term()
Parses a URI. If no scheme defaults are provided, the value of the scheme_defaults function is used.
When parsing a URI with an unknown scheme (that is, a scheme not found in the scheme defaults), a port number must be provided, otherwise the parsing fails.
If the fragment option is true
, the URI fragment is returned as
part of the parsing result, otherwise it is ignored.
scheme_defaults() -> SchemeDefaults
SchemeDefaults = [{scheme(), default_scheme_port_number()}]
default_scheme_port_number() = pos_integer()
Provides a list of the scheme and their default port numbers supported (by default) by this utility.