cURL → Ruby
Converta comandos cURL em código Ruby nativo e limpo usando Net::HTTP, URI, Faraday, HTTParty e manipulação JSON.

Conversor cURL para Ruby (Net::HTTP e Faraday)

Converta comandos cURL em código Ruby limpo e idiomático utilizando Net::HTTP, URI, Faraday e manipulação nativa de JSON.

Privacidade 100% no cliente
Zero transmissão ao servidor
Modelos:
Comando cURLPOST
#!/usr/bin/env ruby
# Net::HTTP Client - Ruby Standard Library (Zero External Gems)
require 'net/http'
require 'uri'
require 'json'

begin
  uri = URI.parse("https://api.github.com/repos/octocat/Hello-World/issues")

  http = Net::HTTP.new(uri.host, uri.port)
  http.use_ssl = (uri.scheme == 'https')

  request = Net::HTTP::Post.new(uri.request_uri)
  request["Accept"] = "application/vnd.github+json"
  request["Authorization"] = "Bearer gho_16C7e42F292c6912E7710c838347Ae178B4a"
  request["X-GitHub-Api-Version"] = "2022-11-28"
  request["Content-Type"] = "application/json"

  payload = {
    title: "Bug in auth session",
    body: "Need to verify token expiration handling",
    labels: ["bug", "priority"]
  }
  request.body = JSON.dump(payload)

  # Dispatch request
  response = http.request(request)

  puts "HTTP Status: #{response.code} #{response.message}"
  begin
    data = JSON.parse(response.body)
    puts "Parsed JSON Response:"
    puts JSON.pretty_generate(data)
  rescue JSON::ParserError
    puts "Raw Body: #{response.body}"
  end
rescue SocketError => e
  warn "Network connection error: #{e.message}"
rescue Net::OpenTimeout, Net::ReadTimeout => e
  warn "Request timed out: #{e.message}"
rescue StandardError => e
  warn "Execution failure: #{e.class} - #{e.message}"
end

Privacidade 100% no Cliente

Toda a análise de comandos cURL, extração de tokens e geração de código Ruby ocorrem na memória do seu navegador sem envio a servidores.

Motores Duplos Net::HTTP e Faraday

Gere scripts sem dependências com a biblioteca padrão Net::HTTP ou utilize conexões modernas do Faraday, HTTParty e HTTP.rb com suporte a middlewares.

Paridade Completa em Produção

Suporta requisições com JSON, dados urlencoded, upload multipart, autenticação Basic/Bearer, redirecionamentos e timeouts.

Referência técnica e guia de arquitetura

Guia do Desenvolvedor do Gerador de Código cURL para Ruby (Net::HTTP e Faraday) — Guia de referência

Converta comandos cURL em código Ruby limpo e idiomático utilizando Net::HTTP, URI, Faraday e manipulação nativa de JSON.

Parâmetros principais e controles

librarystring (net_http | faraday)

Biblioteca cliente HTTP de Ruby de destino (Net::HTTP nativo ou gema Faraday).

Padrão: net_http
cleanDevToolsboolean

Remove pseudo-cabeçalhos de DevTools (:authority, :path, :method) que causam falhas no analisador do Ruby.

Padrão: true
parseJsonboolean

Inclui desserialização com JSON.parse(res.body, symbolize_names: true) para gerar hashes idiomáticos com símbolos.

Padrão: true
sslVerifyboolean

Configura o modo de verificação de certificados SSL/TLS (VERIFY_PEER ou VERIFY_NONE).

Padrão: true

Dicas profissionais e melhores práticas

Ao instanciar Net

Ao instanciar Net::HTTP com Net::HTTP.new(uri.host, uri.port), o SSL vem desabilitado por padrão. Defina http.use_ssl = (uri.scheme == 'https') ou use o formato em bloco Net::HTTP.start(uri.host, uri.port, use_ssl: true) para evitar erros de conexão em texto simples.

O Faraday oferece middlewares

O Faraday oferece middlewares modulares para serialização automática de JSON, tratamento de erros e retentativas. Utilize f.request :json e f.response :json na configuração do cliente para manter o código limpo.

Ao passar symbolize_names

Ao passar symbolize_names: true para JSON.parse, as chaves tornam-se símbolos (ex.: dados[:id] em vez de dados['id']), alinhando-se aos padrões de Ruby e otimizando a alocação de memória.

Problemas comuns e solução de problemas

Net::HTTPHeaderSyntaxError: invalid header name or value

Requisições exportadas de navegadores contêm pseudo-cabeçalhos HTTP/2 iniciados por dois-pontos (:authority). Ative a opção 'cleanDevTools' para remover essas entradas antes de construir a requisição Ruby.

OpenSSL::SSL::SSLError: SSL_connect returned=1 errno=0 peer certificate cannot be authenticated

Certifique-se de que o sistema possui os certificados CA atualizados. Para ambientes locais de teste com certificados autoassinados, utilize http.verify_mode = OpenSSL::SSL::VERIFY_NONE.

Perguntas frequentes (FAQ)

Quando devo escolher Net::HTTP em vez de Faraday no Ruby?▼

Escolha Net::HTTP para scripts independentes, gems que não devem conter dependências externas ou funções serverless como AWS Lambda. Prefira Faraday em aplicações Rails e integrações robustas de API que exigem middlewares e pool de conexões.

Como o gerador converte autenticação Basic e tokens Bearer?▼

Flags do cURL como -u usuario:senha são convertidas em req.basic_auth(usuario, senha) no Net::HTTP ou f.request :authorization, :basic no Faraday. Tokens Bearer são atribuídos como cabeçalhos padrão Authorization: Bearer <token>.

Como fazer download de arquivos grandes ou streaming de resposta no Ruby?▼

No Net::HTTP, passe um bloco para http.request(req) { |res| res.read_body { |chunk| file.write(chunk) } } para gravar blocos diretamente no disco sem carregar o arquivo na RAM. No Faraday, utilize adaptadores com suporte a streaming.

Os meus comandos cURL ou dados confidenciais são enviados para algum servidor?▼

Não. Todo o processamento do cURL, saneamento de cabeçalhos e geração de código Ruby ocorrem 100% no seu navegador via JavaScript do lado do cliente. Nenhum dado é transmitido externamente.

Ferramentas e utilitários relacionados

Todas as ferramentas →
Gerador de NetworkPolicy K8S Referência para DesenvolvedoresDesenvolvimento

Referência de engenharia para gerar manifestos declarativos de NetworkPolicy no Kubernetes, isolamento zero-trust de pods, regras de ingress/egress, blocos CIDR e múltiplas portas.

Abrir ferramenta→
Guia do Desenvolvedor: Gerador de YAML Kubernetes RBAC Role & ClusterRoleBindingDesenvolvimento

Crie manifestos Kubernetes RBAC para Role, ClusterRole, RoleBinding e ClusterRoleBinding com grupos de API, verbos de recursos e contas de serviço.

Abrir ferramenta→
Guia do Desenvolvedor do Gerador de YAML de Kubernetes StatefulSet & Headless ServiceDesenvolvimento

Gere manifestos de Kubernetes StatefulSet prontos para produção com Headless Service complementar, volumeClaimTemplates persistentes, réplicas e podManagementPolicy.

Abrir ferramenta→
Referência de Desenvolvedor para Nginx Location Match TesterDesenvolvimento

Guia técnico para teste de correspondência de blocos location no Nginx e avaliação de precedência de modificadores.

Abrir ferramenta→
Referência de Desenvolvedor Cloudflare Headers e RedirectsDesenvolvimento

Referência técnica e guia de sintaxe para configurar regras de _headers e _redirects no Cloudflare Pages, políticas de segurança e reescritas no edge.

Abrir ferramenta→
Vercel構成ファイル (vercel.json) ビルダーDesenvolvimento

Referência técnica de vercel.json para desenvolvedores: roteamento de borda, rewrites, cabeçalhos de segurança, funções serverless e rotinas cron.

Abrir ferramenta→