table of contents
other versions
- jessie 1:17.3-dfsg-4+deb8u2
- jessie-backports 1:19.2.1+dfsg-2+deb9u1~bpo8+1
- stretch 1:19.2.1+dfsg-2+deb9u2
- testing 1:21.2.5+dfsg-1
- unstable 1:21.2.6+dfsg-1
- experimental 1:22.0~rc1+dfsg-1
http_uri(3erl) | Erlang Module Definition | http_uri(3erl) |
NAME¶
http_uri - URI utility moduleDESCRIPTION¶
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 charactersURI 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():
EXPORTS¶
decode(HexEncodedURI) -> URI
Types:
HexEncodedURI = string() - A possibly hexadecimal encoded
URI
URI = uri()
Decodes a possibly hexadecimal encoded URI.
encode(URI) -> HexEncodedURI
Types:
URI = uri()
HexEncodedURI = string() - Hexadecimal encoded URI
Encodes a hexadecimal encoded URI.
parse(URI) -> {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:
scheme_defaults() -> SchemeDefaults
fun(SchemeStr :: string()) -> valid | {error, Reason :: term()}.It is called before scheme string gets converted into scheme atom and thus possible atom leak could be prevented
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.
inets 6.3.4 | Ericsson AB |