Provided by: erlang-manpages_20.2.2+dfsg-1ubuntu2_all bug


       http_uri - URI utility module


       This module provides utility functions for working with URIs, according to RFC 3986.


       Type definitions that are used more than once in this module:

       boolean() = true | false

       string() = list of ASCII characters

       unicode_binary() = binary() with characters encoded in the UTF-8 coding standard


       Type definitions that are related to URI:

         uri() = string() | unicode:unicode_binary():
           Syntax    according    to   the   URI   definition   in   RFC   3986,   for   example,

         user_info() = string() | unicode:unicode_binary():

         scheme() = atom():
           Example: http, https

         host() = string() | unicode:unicode_binary():

         port() = pos_integer():

         path() = string() | unicode:unicode_binary():
           Represents a file path or directory path

         query() = string() | unicode:unicode_binary():

         fragment() = string() | unicode:unicode_binary():

       For more information about URI, see RFC 3986.


       decode(HexEncodedURI) -> URI


                 HexEncodedURI = string() | unicode:unicode_binary()  -  A  possibly  hexadecimal
                 encoded URI
                 URI = uri()

              Decodes a possibly hexadecimal encoded URI.

       encode(URI) -> HexEncodedURI


                 URI = uri()
                 HexEncodedURI = string() | unicode:unicode_binary() - 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()} | {scheme_validation_fun, fun()}]
                 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 validation fun is to be defined as follows:

              fun(SchemeStr :: string() | unicode:unicode_binary()) ->
                   valid |   {error, Reason :: term()}.

              It is called before scheme string gets converted into scheme atom and thus possible
              atom leak could be prevented

       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.