Converter curl para Lua

O curl2code converte comandos curl para código Lua usando a biblioteca http. A conversão é executada no seu navegador via WebAssembly para total privacidade. Para Python, confira nosso conversor de curl para Python. Para Ruby, veja curl para Ruby. Abaixo estão exemplos práticos de Lua.

Como copiar o curl do seu navegador

  1. 1

    Abra o DevTools

    Pressione F12 ou Ctrl+Shift+I para abrir as ferramentas de desenvolvedor do seu navegador.

  2. 2

    Vá para a aba Network

    Clique na aba Network e realize a ação que dispara a requisição HTTP.

  3. 3

    Copiar como cURL

    Clique com o botão direito na requisição → CopyCopy as cURL. Depois cole acima.

Perguntas Frequentes

O que é o Lua http?

O lua-http (ou socket.http do LuaSocket) é a forma padrão de fazer requisições HTTP em Lua. Ele fornece métodos básicos de GET, POST e requisições personalizadas. Para mais recursos, o lua-resty-http é popular em ambientes OpenResty/Nginx. Instale com luarocks install http. O curl2code gera código usando o módulo http.

socket.http vs lua-resty-http vs lua-curl — qual usar?

socket.http (LuaSocket) é o padrão para Lua geral. lua-resty-http é para OpenResty/Nginx com E/S não bloqueante. lua-curl envolve a libcurl para suporte total a protocolos. Use socket.http para scripts independentes, resty-http para servidores web. Para scripts semelhantes, veja curl para Python ou curl para Ruby.

Como lidar com autenticação no Lua?

Defina o cabeçalho Authorization na tabela de cabeçalhos: headers = { Authorization = "Bearer token" }. Para autenticação Basic, codifique com uma biblioteca base64: "Basic " .. base64.encode(user .. ":" .. pass). Passe os cabeçalhos na tabela de opções da requisição. O curl2code lida com -u e flags de cabeçalho.

Como enviar dados de formulário multipart no Lua?

Construa o corpo multipart manualmente com strings de boundary ou use uma biblioteca auxiliar como multipart-post. Defina o cabeçalho Content-Type com o boundary. O http.request do LuaSocket aceita uma função source para streaming de uploads grandes. O curl2code converte as flags -F para a sintaxe Lua.

Como lidar com erros HTTP no Lua?

O http.request do LuaSocket retorna múltiplos valores: body, code, headers, status = http.request(url). Verifique code para o status HTTP (200, 404, etc.) ou nil em falha de rede. Use o padrão assert() ou if not body then do Lua para verificação de erros.

Como analisar JSON no Lua?

Use o módulo cjson (rápido, baseado em C): local data = cjson.decode(json_string). Para codificação: cjson.encode(table). No OpenResty, o cjson já vem pré-instalado. Para Lua independente, instale com luarocks install lua-cjson. Alternativamente, use o dkjson em Lua puro.

Como definir timeouts no Lua?

Com LuaSocket: defina http.TIMEOUT = 30 globalmente, ou crie uma conexão personalizada e chame :settimeout(30). No lua-resty-http, use httpc:set_timeout(30000) (milissegundos). Timeouts evitam que os scripts fiquem travados indefinidamente em servidores que não respondem.

Como usar um proxy no Lua?

Com LuaSocket, defina o campo proxy nas opções da requisição: http.request{ url = target, proxy = "http://proxy:8080" }. Para lua-resty-http, conecte-se ao proxy diretamente e use o método CONNECT para tunelamento HTTPS. O curl2code converte as flags -x para a configuração de proxy Lua apropriada.

Como enviar uma requisição POST com corpo JSON em Lua?

Converta um comando curl POST como curl -X POST -H "Content-Type: application/json" -d '{"key":"value"}' URL para Lua usando o curl2code. O código gerado usa http.request(url, json_body, headers). O curl2code detecta automaticamente as flags -d/--data com conteúdo JSON e define o cabeçalho Content-Type apropriado no código do http.

Como adicionar autorização com token Bearer em Lua?

Passe curl -H "Authorization: Bearer YOUR_TOKEN" URL para o curl2code e ele gerará o código do http com o cabeçalho de autenticação: headers['Authorization'] = 'Bearer YOUR_TOKEN'. O curl2code detecta tokens Bearer tanto de flags -H "Authorization: Bearer ..." quanto de --oauth2-bearer. Para Basic auth, use -u user:pass.

Como definir o cabeçalho Content-Type em Lua?

O curl2code converte curl -H "Content-Type: application/json" URL para o código do http com o cabeçalho correto: headers['Content-Type'] = 'application/json'. Para dados -d, o curl define por padrão application/x-www-form-urlencoded; para uploads de formulário com -F, ele usa multipart/form-data. O curl2code mapeia cada um para a API correta do http.

Links úteis

Guias do curl

Converter curl para outras linguagens