Zum Hauptinhalt springen
Version: latest - a1.148.0 ⚖️

🌐 HTTP

HTTP Requests Interface.

🗿Static ClassClient & Server🧑‍💻API Source

🎒 Examples

(HTTP.Request) Makes an asynchronous 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"}"
(HTTP.RequestAsync) Makes an asynchronous HTTP Request
HTTP.RequestAsync("127.0.0.1:7777", "/", HTTPMethod.GET, "", "application/json", false, {}, function(status, data)
Console.Log(status) -- 200
Console.Log(data) -- "{"players_count":0,"server_name":"nanos world server"}"

-- 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
tablewith this format
HTTP.Request Examples
Makes an asynchronous 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"}"

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)
Console.Log(status) -- 200
Console.Log(data) -- "{"players_count":0,"server_name":"nanos world server"}"

-- 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.