Enviando uma requisição HTTP

Lua:
Enviando uma requisição HTTP

Como fazer:

Para enviar uma requisição HTTP em Lua, você vai precisar de uma biblioteca externa, pois as funcionalidades padrões não oferecem suporte direto para isso. O exemplo a seguir usa a biblioteca socket.http para fazer uma requisição GET simples:

local http = require("socket.http")

local response_body = {}

local res, code, response_headers = http.request{
    url = "http://httpbin.org/get", 
    sink = ltn12.sink.table(response_body)
}

if code == 200 then
    print("Requisição bem-sucedida!")
    print("Resposta do corpo:", table.concat(response_body))
else
    print("Erro na requisição:", code)
end

Aprofundando

Enviar requisições HTTP não é nativo em Lua. Historicamente, isso é resolvido usando bibliotecas como socket.http do LuaSocket, que é bem estabelecida e amplamente utilizada. Alternativas modernas incluem lua-http, que é mais recente e promete uma API mais flexível e recursos HTTP/2.

Quanto aos detalhes de implementação, uma requisição HTTP envolve montar uma mensagem HTTP adequada e enviar para o servidor, aguardando por uma resposta que também seguirá o protocolo HTTP. Diferentes métodos de requisição (GET, POST, PUT, DELETE etc.) são usados conforme a necessidade da operação a ser realizada. Tratar erros é essencial, já que muitas coisas podem dar errado nesse processo.

Veja também

Lembre-se de sempre verificar a compatibilidade das bibliotecas com a versão atual do Lua e o seu ambiente de desenvolvimento.