fetchRemote
Servidor
Hace una petición HTTP o HTTPS y entrega la respuesta a una función cuando llega.
bool|string, table fetchRemote(string url, function callback, any ... [, table options = nil])
Parámetros
| Nombre | Tipo | Descripción |
|---|---|---|
| url | string | La dirección, empezando por http:// o https://. Otro comienzo genera un error. |
| options | table | Tabla opcional: method (GET, POST, PUT, PATCH, DELETE o HEAD; con postData y sin método, POST), headers (nombre → valor), postData (el cuerpo enviado) y connectTimeout (en ms, de 1000 a 60000, 10000 si falta). Un método desconocido genera un error.por defecto nil |
| callback | function | Se llama con el cuerpo de la respuesta, la tabla info y los argumentos extra. |
| ... | any | Argumentos pasados a callback después de info. |
Retorno
true si la petición se envió. Dentro de async.thread y sin callback, la función espera la respuesta y devuelve el cuerpo y la tabla info.
info tiene success (true cuando el estado es 2xx), statusCode, headers (nombre → valor) y, si la petición falló, error. Cuando el recurso se detiene, las respuestas que aún no llegaron se descartan.
Ejemplo
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("la solicitud falló: " .. (info.error or info.statusCode))
end
end)Si vienes de MTADe las opciones de MTA, solo se leen
method, headers, postData y connectTimeout. Dentro de async.thread, callback puede omitirse y la llamada espera la respuesta.