Plasma GitLab Archive
Projects Blog Knowledge

Module Netencoding.Url

module Url: sig .. end


Encoding/Decoding within URLs:

The following two functions perform the '%'-substitution for characters that may otherwise be interpreted as metacharacters.

According to: RFC 1738, RFC 1630

Option plus: This option has been added because there are some implementations that do not map ' ' to '+', for example Javascript's escape function. The default is true because this is the RFC- compliant definition.

There are no tstring and polymorphic versions of the encode and decode functions, as URLs are comparatively short, and it is considered as acceptable for the user to convert types as needed, even if strings need to be copied for that.

val decode : ?plus:bool -> ?pos:int -> ?len:int -> string -> string
Option plus: Whether '+' is converted to space. The default is true. If false, '+' is returned as it is.

The optional arguments pos and len may restrict the string to process to this substring.

val encode : ?plus:bool -> string -> string
Option plus: Whether spaces are converted to '+'. The default is true. If false, spaces are converted to "%20", and only %xx sequences are produced.

URL-encoded parameters:

The following two functions create and analyze URL-encoded parameters. Format: name1=val1&name2=val2&...

val mk_url_encoded_parameters : (string * string) list -> string
The argument is a list of (name,value) pairs. The result is the single URL-encoded parameter string.
val dest_url_encoded_parameters : string -> (string * string) list
The argument is the URL-encoded parameter string. The result is the corresponding list of (name,value) pairs. Note: Whitespace within the parameter string is ignored. If there is a format error, the function fails.
This web site is published by Informatikbüro Gerd Stolpmann
Powered by Caml