Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
http_uri(3)		   Erlang Module Definition		   http_uri(3)

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

URI DATA TYPES
       Type definitions	that are related to URI:

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

	 user_info() = string()	| binary():

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

	 host()	= string() | binary():

	 port()	= inet:port_number():

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

	 query() = string() | binary():

	 fragment() = string() | binary():

       For more	information about URI, see RFC 3986.

EXPORTS
       decode(HexEncodedURI) ->	URI

	      Types:

		 HexEncodedURI	= string() | binary() -	A possibly hexadecimal
		 encoded URI
		 URI = uri()

	      Decodes a	possibly hexadecimal encoded URI.

       encode(URI) -> HexEncodedURI

	      Types:

		 URI = uri()
		 HexEncodedURI = string() | 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_de-
		 faults,   scheme_defaults()}	|   {fragment,	 boolean()}  |
		 {scheme_validation_fun, fun()}
		 Result	=  {Scheme,  UserInfo,	Host,  Port,  Path,  Query}  |
		 {Scheme, UserInfo, Host, Port,	Path, Query, Fragment}
		 Scheme	= scheme()
		 UserInfo = user_info()
		 Host =	host()
		 Port =	inet:port_number()
		 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()	| binary()) ->
		   valid |   {error, Reason :: term()}.

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

	  Warning:
	      The scheme portion of the	URI gets converted into	atom,  meaning
	      that  atom leak may occur. Specifying a scheme validation	fun is
	      recommended unless the URI is already sanitized.

       scheme_defaults() -> SchemeDefaults

	      Types:

		 SchemeDefaults	= [{scheme(), default_scheme_port_number()}]
		 default_scheme_port_number() =	inet:port_number()

	      Provides a list of the scheme and	 their	default	 port  numbers
	      supported	(by default) by	this utility.

Ericsson AB			  inets	7.0.6			   http_uri(3)

NAME | DESCRIPTION | DATA TYPES | URI DATA TYPES | EXPORTS

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=http_uri&sektion=3&manpath=FreeBSD+12.2-RELEASE+and+Ports>

home | help