rspamd_httpRspamd HTTP module represents HTTP asynchronous client available from LUA code. This module hides all complexity: DNS resolving, sessions management, zero-copy text transfers and so on under the hood.
local rspamd_http = require "rspamd_http"
local function symbol_callback(task)
local function http_callback(err_message, code, body, headers)
task:insert_result('SYMBOL', 1) -- task is available via closure
end
rspamd_http.request({
task=task,
url='http://example.com/data',
body=task:get_content(),
callback=http_callback,
headers={Header='Value', OtherHeader='Value'},
mime_type='text/plain',
})
endFunctions:
The module rspamd_http defines the following functions.
rspamd_http.request({params...})This function creates HTTP request and accepts several parameters as a table using key=value syntax. Required params are:
urlcallbacktaskParameters:
url {string}: specifies URL for a request in the standard URI form (e.g. ‘http://example.com/path’)callback {function}: specifies callback function in format function (err_message, code, body, headers) that is called on HTTP request completiontask {task}: if called from symbol handler it is generally a good idea to use the common task objects: event base, DNS resolver and events sessionheaders {table}: optional headers in form [name='value', name='value']mime_type {string}: MIME type of the HTTP content (for example, text/html)body {string/text}: full body content, can be opaque rspamd{text} to avoid data copyingtimeout {number}: floating point request timeout value in seconds (default is 5.0 seconds)Returns:
{boolean}: true if a request has been successfully scheduled. If this value is false then some error occurred, the callback thus will not be calledBack to module description.
Back to top.