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
Abrir as DevTools
Prima F12 ou Ctrl+Shift+I para abrir as ferramentas de programador do seu navegador.
- 2
Ir para o separador Network
Clique no separador Network e realize a ação que despoleta o pedido HTTP.
- 3
Copiar como cURL
Clique com o botão direito no pedido → Copy → Copy 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
Códigos de erro do curl
Consulte qualquer código de saída do curl — causas, correções e dicas de depuração.
Transferir ficheiros com curl
Guarde ficheiros com -o, -O, siga redirecionamentos, retome transferências e mais.
SSL, TLS e proxy
Configure certificados, versões TLS, proxies HTTP/SOCKS e DNS personalizado.