M MY Multiplayer: Wiki
Lado
Tipo

fetchRemote

Servidor

Faz uma requisição HTTP ou HTTPS e entrega a resposta a uma função quando ela chega.

bool|string, table fetchRemote(string url, function callback, any ... [, table options = nil])

Parâmetros

NomeTipoDescrição
urlstringO endereço, começando por http:// ou https://. Outro começo gera erro.
optionstableTabela opcional: method (GET, POST, PUT, PATCH, DELETE ou HEAD; com postData e sem método, POST), headers (nome → valor), postData (o corpo enviado) e connectTimeout (em ms, de 1000 a 60000, 10000 se ausente). Um método desconhecido gera erro.padrão nil
callbackfunctionChamada com o corpo da resposta, a tabela info e os argumentos extras.
...anyArgumentos passados ao callback depois de info.

Retorno

true se a requisição foi enviada. Dentro de async.thread e sem callback, a função espera a resposta e devolve o corpo e a tabela info.

info tem success (true quando o status é 2xx), statusCode, headers (nome → valor) e, se a requisição falhou, error. Quando o recurso para, as respostas que ainda não chegaram são descartadas.

Exemplo

local options = {
    method = "POST",
    headers = { ["Content-Type"] = "application/json" },
    postData = toJSON({ event = "server_started" }),
}

fetchRemote("https://example.com/api/events", options, function(body, info)
    if not info.success then
        outputDebugString("a requisição falhou: " .. (info.error or info.statusCode))
    end
end)
Vindo do MTADas opções do MTA, só method, headers, postData e connectTimeout são lidas. Dentro de async.thread, o callback pode ficar de fora e a chamada espera a resposta.

Veja também