Skip to main content
Version: bleeding-edge 🩸

🌐 HTTP

HTTP Requests Interface.

🗿Static ClassClient & Server🧑‍💻API Source

🎒 Examples​

(HTTP.Request) Makes a synchronous HTTP Request
local ret = HTTP.Request("127.0.0.1:7777", "/", HTTPMethod.GET, "", "application/json", false, {})

Console.Log(ret.Status) -- 200
Console.Log(ret.Data) -- "{"players_count":0,"server_name":"nanos world server"}"
Console.Log(ret.Headers["Content-Type"]) -- "application/json"
(HTTP.RequestAsync) Makes an asynchronous HTTP Request
HTTP.RequestAsync("127.0.0.1:7777", "/", HTTPMethod.GET, "", "application/json", false, {}, function(status, data, headers)
Console.Log(status) -- 200
Console.Log(data) -- "{"players_count":0,"server_name":"nanos world server"}"
Console.Log(headers["Content-Type"]) -- "application/json"

-- TIP: You can parse it if it's a json return as well
local json_ret = JSON.parse(data)
end)
tip

All requests are thread safe! 🥳 This means that callbacks are returned on the main thread!

🗿 Static Functions​

ReturnsNameDescription
tableRequestMakes a synchronous HTTP Request
RequestAsyncMakes an asynchronous HTTP Request
SetConnectionTimeoutSets the HTTP requests global Connection Timeout in seconds
SetReadWriteTimeoutSets the HTTP requests global Read and Write Timeout in seconds

Blocking

Request​

Makes a synchronous HTTP Request.

The request will be made synchronously and will freeze the server until it's done.
local ret = HTTP.Request(uri, endpoint?, method?, data?, content_type?, compress?, headers?)

Parameters

TypeParameterDefaultDescription
stringuri Required parameter The main URI (the base address)
stringendpoint?
The endpoint
HTTPMethodmethod?HTTPMethod.GET
The HTTP Method to be used
stringdata?
Payload
stringcontent_type?application/json
The Content Type to be used
booleancompress?false
Whether or not to compress the content with gzip
tableheaders?{}
The Headers to be used

Returns

TypeDescription
tableTable with the response <code>Status</code>, <code>Data</code> and <code>Headers</code> with this format
HTTP.Request Examples
Makes a synchronous HTTP Request
local ret = HTTP.Request("127.0.0.1:7777", "/", HTTPMethod.GET, "", "application/json", false, {})

Console.Log(ret.Status) -- 200
Console.Log(ret.Data) -- "{"players_count":0,"server_name":"nanos world server"}"
Console.Log(ret.Headers["Content-Type"]) -- "application/json"

Optimal

RequestAsync​

Makes an asynchronous HTTP Request.

The request will be made asynchronously and returned safely in the same thread in the callback provided when it's done.

Note: If a request is still running when unloading packages, the server will freeze until it's finished, then the package will unload.
HTTP.RequestAsync(uri, endpoint?, method?, data?, content_type?, compress?, headers?, callback?)

Parameters

TypeParameterDefaultDescription
stringuri Required parameter The main URI (the base address)
stringendpoint?
The endpoint
HTTPMethodmethod?HTTPMethod.GET
The HTTP Method to be used
stringdata?
Payload
stringcontent_type?application/json
The Content Type to be used
booleancompress?false
Whether or not to compress the content with gzip
tableheaders?{}
The Headers to be used
functioncallback?nil
The result with this format
HTTP.RequestAsync Examples
Makes an asynchronous HTTP Request
HTTP.RequestAsync("127.0.0.1:7777", "/", HTTPMethod.GET, "", "application/json", false, {}, function(status, data, headers)
Console.Log(status) -- 200
Console.Log(data) -- "{"players_count":0,"server_name":"nanos world server"}"
Console.Log(headers["Content-Type"]) -- "application/json"

-- TIP: You can parse it if it's a json return as well
local json_ret = JSON.parse(data)
end)

Optimal

SetConnectionTimeout​

Sets the HTTP requests global Connection Timeout in seconds
HTTP.SetConnectionTimeout(connection_timeout)

Parameters

TypeParameterDefaultDescription
integerconnection_timeout Required parameter The timeout in seconds

Optimal

SetReadWriteTimeout​

Sets the HTTP requests global Read and Write Timeout in seconds
HTTP.SetReadWriteTimeout(read_write_timeout)

Parameters

TypeParameterDefaultDescription
integerread_write_timeout Required parameter The timeout in seconds

🚀 Events​

This class doesn't have own events.