Converter curl para Lua

O curl2code converte comandos curl para código Lua utilizando a biblioteca http. A conversão é executada no seu navegador através de WebAssembly para total privacidade. Para Python, consulte o nosso conversor de curl para Python. Para Ruby, veja curl para Ruby. Abaixo encontram-se exemplos práticos de Lua.

Como copiar o curl do seu navegador

  1. 1

    Abrir as DevTools

    Prima F12 ou Ctrl+Shift+I para abrir as ferramentas de programador do seu navegador.

  2. 2

    Ir para o separador Network

    Clique no separador Network e realize a ação que despoleta o pedido HTTP.

  3. 3

    Copiar como cURL

    Clique com o botão direito no pedido → CopyCopy as cURL. Depois cole-o acima.

Perguntas Frequentes

O que é o Lua http?

O lua-http (ou socket.http do LuaSocket) é a forma padrão de fazer pedidos HTTP em Lua. Fornece métodos básicos de GET, POST e pedidos personalizados. Para mais funcionalidades, 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 I/O não bloqueante. lua-curl envolve a libcurl para suporte total de protocolos. Use socket.http para scripts autónomos, e resty-http para servidores web. Para scripting semelhante, consulte curl para Python ou curl para Ruby.

Como gerir a autenticação em 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 do pedido. O curl2code gere as flags -u e de cabeçalho.

Como enviar dados de formulário multipart em 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 a boundary. O http.request do LuaSocket aceita uma função de origem para streaming de uploads grandes. O curl2code converte as flags -F para a sintaxe Lua.

Como gerir erros HTTP em Lua?

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

Como analisar JSON em 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 autónomo, instale com luarocks install lua-cjson. Alternativamente, use o dkjson em Lua puro.

Como definir timeouts em Lua?

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

Como usar um proxy em Lua?

Com LuaSocket, defina o campo proxy nas opções do pedido: http.request{ url = target, proxy = "http://proxy:8080" }. Para lua-resty-http, ligue-se diretamente ao proxy 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 um pedido POST com um 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 utiliza http.request(url, json_body, headers). O curl2code deteta automaticamente as flags -d/--data com conteúdo JSON e define o cabeçalho Content-Type apropriado no código http.

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

Passe curl -H "Authorization: Bearer YOUR_TOKEN" URL para o curl2code e este gera código http com o cabeçalho de autenticação: headers['Authorization'] = 'Bearer YOUR_TOKEN'. O curl2code deteta tokens Bearer tanto de flags -H "Authorization: Bearer ..." como de --oauth2-bearer. Para Basic auth, utilize -u user:pass.

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

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

Links Úteis

Guias do curl

Converter curl para Outras Linguagens