This module contains the functions you need to get (or set) information about current request.
Module Eliom_request_info
Module Eliom_request_info : sig end
This module contains the functions you need to get (or set) information about current request.
=== Getting information about the request ===
val get_http_method : unit -> Ocsigen_http_frame.Http_header.http_method
returns the HTTP method used for the request (usually GET or POST).
val get_user_agent : unit -> string
returns the name of the user agent that did the request (usually the name of the browser).
val get_full_url : unit -> string
returns the full URL as a string
val get_remote_ip : unit -> string
returns the internet address of the client as a string
val get_remote_inet_addr : unit -> Unix.inet_addr
returns the internet address of the client, using the type Unix.inet_addr (defined in OCaml's standard library).
val get_current_full_path_string : unit -> string
returns the full path of the URL as a string.
val get_current_full_path : unit -> Eliom_lib.Url.path
returns the full path of the URL using the type Url.path
val get_original_full_path_string : unit -> string
returns the full path of the URL as first sent by the browser (not changed by previous extensions like rewritemod)
val get_original_full_path : unit -> Eliom_lib.Url.path
returns the full path of the URL as first sent by the browser (not changed by previous extensions like rewritemod)
val get_current_sub_path_string : unit -> string
returns the sub path of the URL as a string. The sub-path is the full path without the path of the site (set in the configuration file).
val get_current_sub_path : unit -> Eliom_lib.Url.path
returns the sub path of the URL using the type Url.path . The sub-path is the full path without the path of the site (set in the configuration file).
val get_header_hostname : unit -> string option
returns the hostname that has been sent by the user agent. For HTTP/1.0, the Host field is not mandatory in the request.
val get_hostname : unit -> string
returns the hostname used for absolute links. It is either the Host header sent by the browser or the default hostname set in the configuration file, depending on server configuration ( <usedefaulthostname/> option).
val get_server_port : unit -> int
returns the port of the server. It is either the default port in the configuration file (if <usedefaulthostname/> is present is the configuration file), or the port in the Host header of the request (if present), or the port on which the request has been done (otherwise).
val get_ssl : unit -> bool
returns true if https is used, false if http.
val get_accept_language : unit -> (string * float option) list
returns the (string * float option) list corresponding to accept_language HTTP header of the request.
val get_suffix : unit -> Eliom_lib.Url.path option
returns the suffix of the current URL
val get_cookies : ?cookie_level:Eliom_common.cookie_level -> unit -> string Ocsigen_cookies.CookiesTable.t
returns the cookies sent by the browser
val get_timeofday : unit -> float
returns an Unix timestamp associated to the request
val get_request_id : unit -> int64
returns an unique id associated to the request
=== Exceptions and fallbacks ===
val get_request_cache : unit -> Polytables.t
returns a table in which you can store all the data you want during a request. It can also be used to send information after an action. Keep an eye on this information to know what succeeded before the current service was called (failed connection, timeout ...) The table is created at the beginning of the request.
val clean_request_cache : unit -> unit
Remove all data from the request cache
val get_link_too_old : unit -> bool
returns true if the coservice called has not been found. In that case, the current service is the fallback.
val get_expired_service_sessions : unit -> Eliom_common.full_state_name list * Eliom_common.full_state_name list
returns the list of names of service sessions expired for the current request, for browser sessions and tab sessions.
val get_previous_extension_error_code : unit -> int
returns the HTTP error code sent by the Ocsigen extension that tried to answer to the request before Eliom. It is 404 by default.
=== Getting information about files uploaded ===
=== Warning: The files uploaded are automatically erased by Ocsigen just after the request has been fulfilled. If you want to keep them, create a new hard link yourself during the service (or make a copy). ===
val get_tmp_filename : Ocsigen_extensions.file_info -> string
returns the filename used by Ocsigen for the uploaded file.
val get_filesize : Ocsigen_extensions.file_info -> int64
returns the size of the file.
val get_original_filename : Ocsigen_extensions.file_info -> string
returns the name the file had on the client when it has been sent.
val get_file_content_type : Ocsigen_extensions.file_info -> ((string * string) * (string * string) list) option
returns the content type sent by the browser with the file (if any).
val get_site_dir : unit -> Eliom_lib.Url.path
returns the root of the site.
=== Getting parameters (low level) ===
=== The usual way to get parameters with Eliom is to use the second and third parameters of the service handlers. These are low level functions you may need for more advanced use. ===
val get_get_params : unit -> (string * string) list
returns the parameters of the URL (GET parameters) that concern the running service. For example in the case of a non-attached coservice called from a page with GET parameters, only the parameters of that non-attached coservice are returned (even if the other are still in the URL).
val get_all_current_get_params : unit -> (string * string) list
returns current parameters of the URL (GET parameters) (even those that are for subsequent services, but not previous actions)
val get_initial_get_params : unit -> (string * string) list
returns all parameters of the URL (GET parameters) as sent initially by the browser
val get_other_get_params : unit -> (string * string) list
returns the parameters of the URL (GET parameters) that do not concern the running service.
val get_nl_get_params : unit -> (string * string) list Eliom_lib.String.Table.t
returns non localized parameters in the URL.
val get_persistent_nl_get_params : unit -> (string * string) list Eliom_lib.String.Table.t
returns persistent non localized parameters in the URL.
val get_nl_post_params : unit -> (string * string) list Eliom_lib.String.Table.t
returns non localized POST parameters.
val get_post_params : unit -> (string * string) list Lwt.t option
returns the parameters in the body of the HTTP request (POST parameters) that concern the running service. None means that POST data where neither urlencoded form data or multipart data.
val get_all_post_params : unit -> (string * string) list option
returns all parameters in the body of the HTTP request (POST parameters) (even those that are for another service)
=== Other low level functions ===
=== You probably don't need these functions. ===
val get_ri : unit -> Ocsigen_extensions.request_info
returns all the information about the request.
val get_request : unit -> Ocsigen_extensions.request
returns all the information about the request and config.
val get_state_name : unit -> Eliom_common.full_state_name option
returns the name of the sessions to which belongs the running service ( None if it is not a session service)
val get_persistent_cookies : unit -> string Eliom_common.Full_state_name_table.t
returns the values of the Eliom's cookies for persistent sessions sent by the browser.
val get_data_cookies : unit -> string Eliom_common.Full_state_name_table.t
returns the values of Eliom's cookies for non persistent sessions sent by the browser.
val get_previous_extension_error_code : unit -> int
Returns the http error code of the request before Eliom was called
val expecting_process_page : unit -> bool
Returns true if the request was done by a client side Eliom program, which was expecting to receive a new HTML page to display inside the process.
=== Getting information about the URL of the client side process (csp) Warning: it is different from the URL to which the request has been made. ===
val get_csp_original_full_path : unit -> Eliom_lib.Url.path
returns the full path of the URL where the client-side process is running. If there is no client side process, same as Eliom_request_info.get_original_full_path .
val get_csp_hostname : unit -> string
returns the hostname used for absolute links, computed when launching the client side process for the first time. If there is no client side process, same as Eliom_request_info.get_hostname .
It is either the Host header sent by the browser or the default hostname set in the configuration file, depending on server configuration ( <usedefaulthostname/> option).
val get_csp_server_port : unit -> int
returns the port of the server, used when launching the client side process (not the current request). It corresponds to the port in the URL of the browser. If there is no client side process, same as Eliom_request_info.get_server_port .
val get_csp_ssl : unit -> bool
returns true if https is used in the URL of the browser, false if http. If there is no client side process, same as Eliom_request_info.get_ssl .
val get_sitedata : unit -> Eliom_common.sitedata