This module provides functions for tampering with Url. It's main goal is to allow one to stay in the Ocaml realm without wandering into the Dom_html.window##location object.
The first functions are mainly from and to string conversion functions for the different parts of a url.
urldecode s
swaps percent encoding characters for their usual
representation.
urlencode ?with_plus s
replace characters for their percent encoding
representation. Note that the '/' (slash) character is escaped as well. If
with_plus
is true
(default) then '+'
's are escaped as "%2B"
. If not,
'+'
's are left as is.
#
hu_host
| : string | ; | (* | The host part of the url. | *) |
#
hu_port
| : int | ; | (* | The port for the connection if any. | *) |
#
hu_path
| : string list | ; | (* | The path splitted on '/' characters. | *) |
#
hu_path_string
| : string | ; | (* | The original entire path. | *) |
#
hu_arguments
| : (string * string) list | ; | (* | Arguments as a field-value association list. | *) |
#
hu_fragment
| : string | ; | (* | The fragment part (after the '#' character). | *) |
The type for HTTP(s) url.
The default port for Http
communications (80).
The default port for Https
communications (443).
path_of_path_string s
splits s
on each "/"
character.
encode_arguments a
expects a list of pair of values of the form
(name,value)
were name
is the name of an argument and value
it's
associated value.
decode_arguments s
parses s
returning the sliced-diced
association list.
The following part allow one to handle Url object in a much higher level than what a string provides.
url_of_string s
parses s
and builds a value of type url
if s
is not
a valid url string, it returns None
.
string_of_url u
returns a valid string representation of u
. Note that
string_of_url ((fun Some u -> u) (url_of_string s))
is NOT necessarily
equal to s
. However url_of_string (string_of_url u) = u
.
This module can be used to handle the Url associated to the current document.
The host part of the current url.
The port of the current url.
The protocol of the current url.
The path of the current url as one long string.
The path of the current url as a list of small string.
The arguments of the current url as an association list.
Because the fragment
of the Url for the current document can change
dynamically, we use a functional value here.
set_fragment s
replaces the current fragment by s
.
as_string
is the original string representation of the current Url. It
is NOT necessarily equals to string_of_url (get ())
but
url_of_string as_string = get ()
holds.