bionic (3) http_uri.3erl.gz

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

NAME

       http_uri - URI utility module

DESCRIPTION

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

DATA TYPES

       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

URI DATA TYPES

       Type definitions that are related to URI:

         uri() = string() | unicode:unicode_binary():
           Syntax according to the URI definition in RFC 3986, for example, "http://www.erlang.org/"

         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.

EXPORTS

       decode(HexEncodedURI) -> URI

              Types:

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

              Decodes a possibly hexadecimal encoded URI.

       encode(URI) -> HexEncodedURI

              Types:

                 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}

              Types:

                 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

              Types:

                 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.