cURL → Ruby
Konvertieren Sie cURL-HTTP-Anfragen in sauberen Ruby-Code mit Net::HTTP, URI, Faraday, HTTParty und robuster JSON-Verarbeitung.

cURL zu Ruby (Net::HTTP & Faraday) Code-Generator

Konvertieren Sie cURL-Befehle in sauberen, nativen Ruby-Code mit Net::HTTP, URI, Faraday sowie nativer JSON-Verarbeitung.

100% clientseitige Privatsphäre
Null Serverübertragung
Vorlagen:
cURL-BefehlseingabePOST
#!/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

100% clientseitige Privatsphäre

Die gesamte cURL-Verarbeitung, Token-Extraktion und Ruby-Code-Generierung findet direkt in Ihrem Browserspeicher statt. Keine Serverübertragung.

Net::HTTP & Faraday Dual-Engines

Generieren Sie abhängigkeitsfreie Net::HTTP-Skripte der Ruby-Standardbibliothek oder moderne Faraday-, HTTParty- und HTTP.rb-Verbindungen mit voller Middleware-Unterstützung.

Vollständige Produktionsparität

Unterstützt JSON-Payloads, Formular-URL-Kodierung, Multipart-Uploads, Basic/Bearer-Authentifizierung, Weiterleitungen und konfigurierbare Timeouts.

Technische Referenz & Architektur-Leitfaden

cURL zu Ruby (Net::HTTP & Faraday) Code-Generator Entwickler-Handbuch — Referenz-Leitfaden

Konvertieren Sie cURL-Befehle in sauberen, nativen Ruby-Code mit Net::HTTP, URI, Faraday sowie nativer JSON-Verarbeitung.

Wichtige Parameter & Steuerelemente

librarystring (net_http | faraday)

Die Ruby-HTTP-Client-Bibliothek, für die Code generiert werden soll (Standard Net::HTTP oder Faraday).

Standard: net_http
cleanDevToolsboolean

Entfernt Browser-DevTools-Pseudo-Header (:authority, :path, :method), die Ruby-Header-Parser beschädigen.

Standard: true
parseJsonboolean

Fügt JSON.parse(res.body, symbolize_names: true) hinzu, um JSON-Antworten in idiomatische Ruby-Hashes zu deserialisieren.

Standard: true
sslVerifyboolean

Konfiguriert den SSL-Zertifikatsvalidierungsmodus (VERIFY_PEER vs. VERIFY_NONE).

Standard: true

Profi-Tipps & Best Practices

Bei direkter Initialisierung via Net

Bei direkter Initialisierung via Net::HTTP.new(uri.host, uri.port) ist SSL standardmäßig deaktiviert. Setzen Sie http.use_ssl = (uri.scheme == 'https') oder nutzen Sie Net::HTTP.start(uri.host, uri.port, use_ssl: true), um Klartext-Verbindungsfehler zu vermeiden.

Faraday bietet modulare Middleware für

Faraday bietet modulare Middleware für JSON-Serialisierung, Logging und Retries. Konfigurieren Sie Verbindungen mit f.request :json und f.response :json, um Transportlogik von der Geschäftslogik zu trennen.

Der Parameter symbolize_names

Der Parameter symbolize_names: true wandelt Schlüssel direkt in Symbole um (z. B. daten[:id] statt daten['id']). Das entspricht modernen Ruby-Konventionen und schont die Speicherallokation.

Häufige Fallstricke & Fehlerbehebung

Net::HTTPHeaderSyntaxError: invalid header name or value

Aus dem Browser kopierte cURL-Befehle enthalten oft HTTP/2-Pseudo-Header mit führendem Doppelpunkt (:authority). Aktivieren Sie 'cleanDevTools', um diese vor dem Request-Bau zu entfernen.

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

Stellen Sie sicher, dass Ihr System Zugriff auf aktuelle CA-Zertifikate hat. Für lokale Entwicklungsumgebungen mit selbstsignierten Zertifikaten können Sie http.verify_mode = OpenSSL::SSL::VERIFY_NONE setzen.

Häufig gestellte Fragen (FAQ)

Wann sollte Net::HTTP und wann Faraday in Ruby eingesetzt werden?▼

Net::HTTP ist Teil der Ruby-Standardbibliothek und erfordert keine externen Gems – ideal für schlanke Skripte, Bibliotheken ohne Abhängigkeiten oder Serverless-Funktionen. Faraday eignet sich hervorragend für Rails-Applikationen mit komplexen API-Anforderungen und Middleware-Bedarf.

Wie werden Basic Auth und Bearer-Tokens in Ruby umgewandelt?▼

cURL-Flags wie -u nutzer:pass werden in req.basic_auth(nutzer, pass) bei Net::HTTP bzw. f.request :authorization, :basic bei Faraday übersetzt. Bearer-Tokens werden direkt als Authorization: Bearer <token> Header gesetzt.

Wie verarbeitet Ruby Streaming-Downloads großer Dateien?▼

In Net::HTTP übergeben Sie einen Block an http.request(req) { |res| res.read_body { |chunk| file.write(chunk) } }, wodurch Daten blockweise gestreamt werden. Faraday unterstützt Streaming über kompatible Adapter.

Werden meine cURL-Befehle oder API-Schlüssel an einen Server übertragen?▼

Nein. Die gesamte Analyse des cURL-Befehls und die Ruby-Code-Generierung erfolgen zu 100 % lokal in Ihrem Browser via JavaScript. Es findet kein Server-Upload statt.

Verwandte Werkzeuge & Dienstprogramme

Alle Werkzeuge →