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
| Nome | Tipo | Descrição |
|---|---|---|
| url | string | O endereço, começando por http:// ou https://. Outro começo gera erro. |
| options | table | Tabela 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 |
| callback | function | Chamada com o corpo da resposta, a tabela info e os argumentos extras. |
| ... | any | Argumentos 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.