HTTP
Table of contents
The HTTP API allows scripts to send HTTP requests to web services, enabling integration between Memento Database and external systems. All HTTP operations are performed through the Http object, which is accessed via the global http() function.
HTTP requests must be executed asynchronously in the last Phase of an Event
The library must have the “Network” permission enabled
Global functions
http()
Global function that returns an Http object for making HTTP requests.
Returns
A new Http object instance for making HTTP requests
Example
var httpClient = http();
log("Created new HTTP client");
Http Object
The Http object provides methods for making HTTP requests and managing request headers. It is obtained through the global http() function.
get(url)
Executes an HTTP GET request to the specified URL.
Parameters
| Parameter | Type | Description |
|---|---|---|
| url | String | The complete URL starting with http:// or https:// |
Returns
| Type | Description |
|---|---|
| HttpResult | Object containing the response from the HTTP request |
Example
var result = http().get("http://api.fixer.io/latest?base=USD");
log("Response code: " + result.code);
log("Response body: " + result.body);
post(url, body)
Executes an HTTP POST request to the specified URL with the given body content.
Parameters
| Parameter | Type | Description |
|---|---|---|
| url | String | The complete URL starting with http:// or https:// |
| body | String | The content to send in the POST request body |
Returns
| Type | Description |
|---|---|
| HttpResult | Object containing the response from the HTTP request |
Example
var result = http().post("http://httpbin.org/post", "Hello World");
log("POST response code: " + result.code);
headers(info)
Sets HTTP headers for subsequent requests.
Parameters
| Parameter | Type | Description |
|---|---|---|
| info | Object | Key-value pairs of header names and values |
Returns
| Type | Description |
|---|---|
| Http | The Http object (for method chaining) |
Example
var httpClient = http();
httpClient.headers({"User-Agent": "Memento Script", "Accept": "application/json"});
var result = httpClient.get("http://httpbin.org/get");
log("Request with custom headers completed: " + result.code);
HttpResult Object
The HttpResult object contains the response from an HTTP request.
Properties
| Property | Type | Description |
|---|---|---|
| body | String | The response body as text |
| code | Number | The HTTP status code of the response (e.g., 200 for success) |
header(tag)
Retrieves a specific header from the response.
Parameters
| Parameter | Type | Description |
|---|---|---|
| tag | String | The name of the header to retrieve |
Returns
| Type | Description |
|---|---|
| String | The value of the specified header |
Example
var result = http().get("http://httpbin.org/get");
var etag = result.header("etag");
log("Response ETag: " + etag);
Examples
// Get current exchange rate from API
var result = http().get("https://data.fixer.io/api/latest?access_key=[API Key]");
// Parse the JSON response
var usdToEur = JSON.parse(result.body)["rates"]["EUR"];
log("Current USD to EUR rate: " + usdToEur);
// Update entry with converted price
var usdPrice = entry().field("PriceUSD");
var eurPrice = usdPrice * usdToEur;
entry().set("PriceEUR", eurPrice);
log("Converted " + usdPrice + " USD to " + eurPrice + " EUR");