logo
GeekFormat

cURL naar Code Converter

cURL-opdracht invoer

Plak een cURL-opdracht om automatisch de URL, methode, headers en request body te parseren en direct bruikbare code te genereren in JavaScript fetch, Axios, Node fetch, Python requests/httpx, Go net/http, PHP cURL, Java OkHttp, C# HttpClient, PowerShell Invoke-RestMethod, wget.

Geparst verzoek

https://api.example.com/items1 header(s)Body: 15 tekenscurlToCode.flag.followRedirects

Gegenereerde code

curlToCode.target.fetch

Plak een cURL-commando en krijg direct werkende HTTP-verzoekcode in 11 talen.

Gerelateerde aanbevelingen

Toepassingsgevallen

  • Klik in het Chrome DevTools Network-paneel met de rechtermuisknop op een verzoek → «Copy as cURL», plak het in deze tool en converteer direct naar code voor je project — 10x sneller dan handmatig schrijven
  • Bij het werken met externe API's, wanneer documentatie cURL-voorbeelden geeft, converteer snel naar Python requests/Java OkHttp/C# HttpClient-code voor integratie in je project
  • Bij het debuggen van API's in productie kopieer je cURL-commando's uit packet sniffers (Charles/mitmproxy/Wireshark), converteer naar unit-testcode voor directe verificatie
  • Bij het schrijven van API-documentatie wissel je snel tussen voorbeelden in verschillende talen, zodat lezers met verschillende tech stacks direct werkende code hebben
  • Bij het onderzoeken van problemen met verzoeken in productie, reproducer je het probleem met cURL, converteer naar code en stuur het naar collega's of maak een Issue — anderen kunnen het direct reproduceren
  • Bij cross-language ontwikkeling (bijv. overstap van Python naar een Go-project) converteer je bestaande cURL-verzoeken snel naar HTTP-clientcode van de nieuwe taal, waardoor je tijd bespaart op het lezen van documentatie
  • Converteer cURL-commando's naar PowerShell Invoke-RestMethod voor Windows-systeembeheerders in shell-scripts of andersom
  • HTTP-protocol leren: door code van hetzelfde verzoek in verschillende talen te vergelijken, begrijp je de API-verschillen tussen HTTP-clientbibliotheken
  • Converteer snel curl -X POST -d 'json' naar code met correcte Content-Type en JSON-serialisatie, waardoor fouten bij handmatige stringconcatenatie worden voorkomen
  • Wanneer je API's moet aanroepen in CI/CD-scripts, converteer je lokaal gedebugde cURL-commando's naar code van de juiste scripttaal voor integratie in de pipeline

Functies

  • 11 doeltalen/bibliotheken: frontend (JS fetch/Axios), Node.js (node-fetch), Python (requests/httpx), Go (net/http), PHP (cURL), Java (OkHttp), C# (HttpClient), PowerShell (Invoke-RestMethod), commandoregel (wget) — alle belangrijke tech stacks gedekt
  • Slimme parsing van cURL-commando's: automatische herkenning van URL, HTTP-methoden, headers, verzoekbody, ondersteunt enkele/dubbele aanhalingstekens, backslash-escaping, meerregelige commando's (backslash voor regeleinde)
  • Volledige ondersteuning voor veelgebruikte cURL-opties: -X/--request voor methode, -H/--header voor headers, -d/--data/-F voor formulier/JSON-body, -u/--user voor Basic Auth, -A/--user-agent voor UA, -b/--cookie voor Cookie, -e/--referer voor Referer, -L/--location voor omleidingen, --compressed voor decompressie, -k/--insecure voor certificaat overslaan, -I/--head voor HEAD-verzoeken
  • Slimme herkenning van JSON-body: bij detectie van Content-Type als application/json wordt automatisch JSON.parse/JSON.stringify/requests(json=)/json=-serialisatie gebruikt, gegeneerde code gebruikt objecten in plaats van tekenreeksen
  • Automatische Basic Auth-conversie: herkenning van -u user:pass genereert automatisch Authorization: Basic <base64> header, doeltaal gebruikt native auth-mechanisme (Python auth=, OkHttp credentials, C# credentials etc.)
  • Beveiligingsbadges: automatische detectie van --compressed/-L/-k/-u vlaggen, weergegeven als badges in parseerresultaten
  • Handmatig wisselen van verzoekmethode: na automatisch parsen van de cURL-methode kan de gebruiker handmatig de methode wijzigen in de dropdown (GET/POST/PUT en 7 andere methoden) en direct de bijbehorende code zien
  • Veilige string-escaping: bij het genereren van code voor elke taal worden native string-literalen gebruikt (drievoudige aanhalingstekens/backslash-escaping in Python, backticks in Go, @"" in C#, enkele aanhalingstekens in PHP, dubbele aanhalingstekens met escaping in Java)
  • Parseerfoutmeldingen: bij invoer van ongeldige cURL-commando's (ontbrekende URL, begint niet met curl, POST zonder body etc.) wordt een oranje waarschuwingsbadge getoond met het specifieke probleem
  • 3 voorbeelden met één klik: 3 typische voorbeelden beschikbaar: GET+Token-authenticatie, POST+JSON, Basic Auth+omleidingen volgen
  • Invoer wissen met één klik: Clear-knop voor snelle reset, nieuwe commando's plakken zonder restanten
  • Volledig lokale verwerking: parsing en conversie van cURL-commando's gebeurt volledig lokaal in de browser, gegevens worden niet naar een server verzonden, gevoelige tokens/wachtwoorden lekken niet
  • Code kopiëren met één klik: na het genereren van code kopieert de Copy-knop deze naar het klembord
  • Ondersteuning voor onveilige HTTPS-modus: -k/--insecure parameter genereert bijbehorende TLS-configuratie voor het overslaan van certificaatverificatie voor Node/Go/Python/PHP/C#/PowerShell (wget gebruikt --no-check-certificate, C# gebruikt ServicePointManager, Node stelt NODE_TLS_REJECT_UNAUTHORIZED in)

Hoe te gebruiken

  1. Verkrijg een cURL-commando: in het DevTools Network-paneel van de browser rechtermuisklik op een verzoek → Copy → Copy as cURL (bash); of exporteer cURL uit Postman/Charles/mitmproxy; of schrijf handmatig een cURL-commando
  2. Plak in het invoerveld: plak het cURL-commando in het bovenste invoergebied, zowel enkelregelige als meerregelige commando's (met backslash voor regelvervolg) worden ondersteund, nieuwe regels worden automatisch verwijderd
  3. Gebruik voorbeeldknoppen ter referentie: als je het formaat niet kent, klik op «Voorbeeld 1/2/3» om voorgedefinieerde cURL-commando's te laden en het resultaat te bekijken
  4. Bekijk parseerresultaat: in het resultaatgebied wordt de URL, aantal headers, aantal tekens in de body weergegeven, evenals badges voor compressie/omleidingen/certificaat overslaan/Basic Auth; bij problemen wordt een oranje waarschuwing getoond
  5. Pas indien nodig de methode aan: als de automatisch herkende methode onjuist is (bijv. cURL zonder -X POST maar het moet POST zijn), wissel dan handmatig de HTTP-methode in de dropdown
  6. Kies de doeltaal: klik in het doelcodegebied op de knop van de gewenste taal (fetch/Axios/Python requests/Go/PHP/Java/C#/PowerShell/wget etc.)
  7. Kopieer de code: klik op de knop «Code kopiëren», plak in je project/terminal — de code is klaar om uit te voeren

Veelgestelde vragen

Waar is de cURL naar code-converter voor? Waarom niet direct een cURL-commando gebruiken?

Het direct aanroepen van een cURL-commando in code (bijv. shell_exec, subprocess.run) vereist het starten van een subproces, is onveilig en maakt foutafhandeling, ophalen van antwoordheaders en typeconversie moeilijk. Productiecode moet native HTTP-clients van programmeertalen gebruiken (Python requests, Java OkHttp, JS fetch etc.). De waarde van curl-to-code is het automatisch vertalen van cURL-commando's die je uit DevTools/packet sniffers kopieert naar HTTP-clientcode van de juiste taal, waardoor je mechanisch werk bespaart bij het opzoeken van API-documentatie, handmatig escapen van aanhalingstekens, verwerken van JSON/authenticatie — kopiëren en plakken is voldoende om uit te voeren.

Welke doeltalen/bibliotheken worden ondersteund?

Momenteel worden 11 doelen ondersteund: JavaScript fetch (browser-native), Axios (universele HTTP-bibliotheek voor Node/browser), Node.js node-fetch, Python requests (meest populaire HTTP-bibliotheek voor Python), Python httpx (nieuwe generatie HTTP-bibliotheek met HTTP/2 en async-ondersteuning), Go net/http (standaardbibliotheek van Go), PHP cURL-extensie, Java OkHttp (universele hoogwaardige bibliotheek voor Android/backend), C# HttpClient (standaard HTTP-client voor .NET), PowerShell Invoke-RestMethod (veel gebruikt in Windows-automatiseringsscripts), wget (commandoregelhulpmiddel voor downloads). Als de gewenste taal niet in de lijst staat (bijv. Ruby, Rust reqwest, Dart http, Swift URLSession etc.), kun je feedback achterlaten op de pagina; we zullen deze op verzoek toevoegen.

Hoe kopieer ik een cURL-commando uit Chrome DevTools?

Stappen: 1. Open Chrome/Edge, druk op F12 om DevTools te openen; 2. Ga naar het Network-paneel; 3. Vernieuw de pagina of activeer het doelverzoek; 4. Zoek het doelverzoek in de verzoeklijst (je kunt filteren op XHR/JS); 5. Klik met de rechtermuisknop op het verzoek → Copy → kies «Copy as cURL (bash)» (bash-versie aanbevolen, beste compatibiliteit); 6. Plak in het invoerveld van deze tool. Let op: kies niet Copy as fetch (dat is JS-code, geen cURL). In Firefox/Safari werkt het vergelijkbaar, daar is ook een Copy as cURL-optie.

Het omgaan met aanhalingstekens in cURL-commando's is lastig, welke formaten worden ondersteund?

De tool ondersteunt bash-stijl met enkele/dubbele aanhalingstekens en backslash-escaping; Windows cmd dubbele aanhalingstekens+^-escaping; PowerShell backtick-escaping worden meestal herkend. Aanbevolen wordt het bash-formaat te gebruiken (omhuld met enkele aanhalingstekens). Meerregelige commando's (met backslash \ voor regelvervolg) worden ook ondersteund bij plakken, de tool verwijdert automatisch nieuwe regels en vervolgtekens. Als je cURL-commando bijzonder complex is (bevat shellvariabelen, opdrachtvervanging $(...), pijplijn | etc.), is het aan te raden eerst het echo-commando in de terminal uit te voeren om de daadwerkelijk uitgevouwen cURL af te drukken en vervolgens te kopiëren, of eerst handmatig te vereenvoudigen (variabelen vervangen door werkelijke waarden).

Waarom ontvangt de server onleesbare tekens/400 bij het verzenden van JSON via -d in cURL?

Dit is een van de meest voorkomende cURL-fouten. De optie -d/--data in cURL gebruikt standaard Content-Type application/x-www-form-urlencoded (formulierformaat), niet application/json. Als je direct curl -d '{"name":"demo"}' url uitvoert, zal de server het als formulier parseren (parseren mislukt of lege gegevens ontvangen). Je moet expliciet de header -H "Content-Type: application/json" toevoegen om correct JSON te verzenden. Deze tool toont een oranje waarschuwing bij detectie van een body zonder Content-Type.

Kan gegenereerde code direct worden gekopieerd en uitgevoerd? Welke afhankelijkheden moeten worden geïnstalleerd?

Code van de meeste talen gebruikt standaardbibliotheken en kan direct worden uitgevoerd (fetch/Go net/http/PHP cURL/C# HttpClient/PowerShell/wget zijn ingebouwd), extra installatie is niet vereist. Voor andere zijn externe bibliotheken vereist: Axios (npm install axios vereist), node-fetch (npm install node-fetch vereist, in Node 18+ is fetch al ingebouwd, installatie niet nodig), Python requests (pip install requests), Python httpx (pip install httpx), Java OkHttp (okhttp3-afhankelijkheid toevoegen via Maven/Gradle). De code drukt standaard de antwoordstatuscode en tekst af; je kunt de verwerkingslogica naar wens aanpassen.

Wordt multipart/form-data bestandupload (parameter -F) ondersteund?

Basisondersteuning: de -F-parameter wordt herkend als verzoekbody (body), maar gegenereerde code behandelt @file momenteel als letterlijke tekenreeks in plaats van daadwerkelijke bestandupload. Bestandupload vereist het lezen van lokale bestandsinhoud, de verwerkingsmethoden verschillen sterk per taal (JS gebruikt FormData/FormData.append, Python gebruikt files=-parameter, Go gebruikt multipart.Writer). Aanbevolen wordt om op basis van de door de tool gegenereerde code de documentatie voor bestandupload van de betreffende bibliotheek te raadplegen voor aanpassingen. In toekomstige versies wordt multipart-ondersteuning uitgebreid.

Worden mijn cURL-commando's en gevoelige gegevens geüpload?

Absoluut niet. Het volledige parseer- en codegeneratieproces vindt 100% lokaal plaats in je browser (pure frontend JavaScript), cURL-commando's, tokens/cookies/wachtwoorden in headers, gegevens in de verzoekbody worden naar geen enkele server verzonden. Je kunt deze tool gebruiken met internet uitgeschakeld, zonder je zorgen te maken over lekken van gevoelige informatie.

Hoe wordt het overslaan van certificaatverificatie -k/--insecure afgehandeld in code voor verschillende talen?

Bij detectie van de -k-parameter genereert deze tool voor elke doeltaal de bijbehorende configuratie voor het overslaan van certificaatverificatie: Python requests/httpx gebruiken verify=False; Node.js stelt process.env.NODE_TLS_REJECT_UNAUTHORIZED='0' in; Go creëert een aangepaste tls.Config{InsecureSkipVerify: true}; PHP stelt CURLOPT_SSL_VERIFYPEER=false en CURLOPT_SSL_VERIFYHOST=0 in; Java OkHttp vereist een aangepaste TrustManager (in de code is een commentaar met hint toegevoegd, omdat de code vrij lang is); C# kan ServerCertificateCustomValidationCallback aanpassen; PowerShell gebruikt -SkipCertificateCheck (PS6+); wget gebruikt --no-check-certificate; browser fetch kan certificaatverificatie niet overslaan (browserbeveiligingsbeperking, in de code is een commentaar met uitleg toegevoegd). Let op: deze configuraties zijn alleen bedoeld voor lokale ontwikkeling en testen, schakel certificaatverificatie nooit uit in een productieomgeving.

Waarom volgt gegenereerde Go-code geen omleidingen? Ik heb -L toegevoegd, dus hij zou moeten volgen?

Het standaardgedrag van net/http in Go is het niet volgen van omleidingen (overeenkomend met het standaardgedrag van curl, curl vereist expliciet -L om te volgen). Bij detectie van de -L-parameter genereert de tool een lege client (http.Client{} met CheckRedirect standaard nil, dus volgt 10 omleidingen); zonder -L wordt een client gegenereerd met CheckRedirect die http.ErrUseLastResponse retourneert, en volgt dus geen omleidingen (overeenkomend met gedrag van curl zonder -L). Als je wilt dat Go altijd omleidingen volgt, kun je direct http.DefaultClient of een aangepaste Client{Timeout: ...} in de code gebruiken.

Hoe verwerk ik verzoeken die inloggen/Cookie vereisen?

Er zijn twee manieren: ①Kopieer direct cURL uit DevTools van een ingelogde browser (aanbevolen): rechtermuisklik op verzoek→Copy as cURL, dan zijn cookies/headers automatisch inbegrepen, plak om te converteren — code is direct uitvoerbaar; ②Geef handmatig de Cookie-waarde op in cURL via -b/--cookie (-b 'sessionid=abc; token=xyz'), -u/--user voor Basic Auth, -H "Authorization: Bearer xxx" voor Bearer Token, de tool converteert deze headers ongewijzigd. Let op: Cookies die uit de browser zijn gekopieerd hebben een vervaldatum, na enkele uren kunnen ze verlopen zijn en moet je ze opnieuw kopiëren.

Waarom wordt voor JSON-verzoekbody in Python requests de json=-parameter gebruikt in plaats van data=?

De data-parameter van de Python requests-bibliotheek codeert een dict als application/x-www-form-urlencoded en verstuurt een string ongewijzigd, terwijl de json-parameter een dict/lijst automatisch serialiseert naar een JSON-string en automatisch de Content-Type: application/json-header instelt (als je deze niet handmatig hebt ingesteld). Deze tool parseert bij detectie van Content-Type die application/json bevat en geldige JSON in de body automatisch JSON naar een Python dict en gebruikt de json=-parameter, waardoor de code beknopter is, er geen handmatige json.dumps nodig is en de Content-Type-header niet wordt vergeten. Niet-JSON-body (formulier/XML/platte tekst) wordt via de data=-parameter als originele tekenreeksen verstuurd.

Het cURL-commando is lang met veel headers, wat moet ik doen als de gegenereerde code alle headers bevat?

Een cURL-commando dat uit DevTools is gekopieerd, bevat veel automatisch door de browser toegevoegde headers (Host, Connection, Accept, Accept-Encoding, Accept-Language, Sec-Fetch-*, sec-ch-ua, Upgrade-Insecure-Requests etc.), de meeste van deze headers hoeven niet expliciet in code te worden ingesteld (HTTP-client voegt automatisch redelijke standaardwaarden toe, zoals Accept-Encoding, Connection, Host, Content-Length etc.). Aanbevolen wordt om na het kopiëren van de gegenereerde code handmatig onnodige headers te verwijderen, en in ieder geval te behouden: Content-Type, Authorization, Cookie (indien nodig), aangepaste zakelijke headers. Overbodige headers maken de code niet alleen onoverzichtelijk, maar kunnen ook leiden tot afwijkend gedrag (bijv. expliciet instellen van Accept-Encoding maar de client decomprimeert niet automatisch).

Wordt de HTTPS-proxyparameter (-x/--proxy) ondersteund?

Momenteel wordt de HTTP-proxyparameter (-x/--proxy) nog niet automatisch geconverteerd. Proxyconfiguratie verschilt sterk per taal (JS fetch heeft geen native proxy-ondersteuning en vereist Agent, Python gebruikt proxies=-parameter, Go via Transport.Proxy, PHP gebruikt CURLOPT_PROXY, C# gebruikt WebProxy, Java gebruikt OkHttpClient.Builder().proxy()). Proxyheaders (authenticatie van de proxy zelf) vereisen ook afzonderlijke afhandeling. In de huidige versie worden proxygerelateerde parameters genegeerd; je kunt handmatig proxyconfiguratie toevoegen op basis van gegenereerde code, in toekomstige versies wordt proxyondersteuning uitgebreid.

Wat is het verschil met online tools zoals curlconverter.com?

Vergeleken met bekende tools zoals curlconverter.com heeft curl-to-code van GeekFormat de volgende voordelen: ①Volledig lokale verwerking (de verwerkingslogica van curlconverter is serverzijde of clientzijde), gegevens worden niet geüpload, dus veiliger; ②Gelokaliseerde interface en gedetailleerde uitleg in het Nederlands; ③Gegenereerde code sluit beter aan bij daadwerkelijk productiegebruik (bijv. Python requests gebruikt json=-parameter voor JSON-body in plaats van data=, standaardgedrag van Go is afgestemd op curl, C# verwerkt Content-Type correct zonder application/json hard te coderen); ④Bijbehorende diepgaande documentatie, FAQ, vergelijkingstabellen, probleemoplossing — genereert niet alleen code maar helpt je ook te begrijpen waarom het zo is geschreven; ⑤Gratis, zonder advertenties, geen registratie of login vereist, geen netwerkverzoeken nodig om te gebruiken.

术语表

cURL / curl
Open-source commandoregelhulpmiddel en libcurl-bibliotheek voor het verzenden van HTTP/HTTPS/FTP en andere verzoeken via URL's vanaf de commandoregel, het meest populaire hulpmiddel voor ontwikkelaars om API's te debuggen.
HTTP-methode
De actie van een HTTP-verzoek, veelvoorkomende: GET (lezen), POST (aanmaken), PUT (volledige update), PATCH (gedeeltelijke update), DELETE (verwijderen), HEAD (headers ophalen), OPTIONS (servermogelijkheden opvragen).
Header
Sleutel-waardeparen van metadata in een HTTP-verzoek, zoals Content-Type, Authorization, User-Agent, Cookie, Accept etc., gespecificeerd in curl via -H/--header.
Verzoekbody (Body)
Het gegevensgedeelte van een HTTP-verzoek, vaak gebruikt bij POST/PUT/PATCH, gespecificeerd in curl via -d/--data/--data-binary/-F, veelvoorkomende formaten: JSON, form-urlencoded, multipart/form-data.
Content-Type
Header van verzoek/antwoord die het mediatype van de body aangeeft. application/json betekent JSON, application/x-www-form-urlencoded betekent URL-encoded formulier, multipart/form-data betekent formulier voor bestanduploads.
Basic Auth
HTTP-basisauthenticatie, stuurt gebruikersnaam en wachtwoord via de Authorization: Basic base64(user:pass) header, in curl gespecificeerd via -u user:pass.
Bearer Token
Token-gebaseerde authenticatie, doorgegeven via de Authorization: Bearer <token> header, veel gebruikt bij JWT/OAuth2.
User-Agent
Header die het clienttype identificeert (browser/bot/script), curl verstuurt standaard «curl/versie», veel websites blokkeren niet-browser UA's, vaak ingesteld via -A.
Cookie
Sleutel-waardeparen die door de server via Set-Cookie worden verzonden en door de browser in volgende verzoeken via de Cookie-header worden teruggestuurd, gebruikt voor sessiebehoud. curl -b verstuurt Cookie, -c slaat Cookie op.
Referer
Header die de URL van de bronpagina van het huidige verzoek aangeeft, sommige hotlink/CSRF-controles controleren dit. curl -e stelt dit in.
Omleiding (3xx)
Wanneer de server statuscodes 301/302/303/307/308 retourneert om de browser naar een nieuwe URL te sturen. curl volgt standaard niet, voeg -L/--location toe om te volgen.
--compressed
cURL-optie die automatisch de Accept-Encoding: deflate, gzip header toevoegt en antwoorden automatisch decompressert. Zonder dit kan het antwoord bestaan uit onleesbare gecomprimeerde gegevens.
-k/--insecure
cURL-optie om HTTPS-certificaatverificatie over te slaan, alleen te gebruiken in testomgevingen met zelfondertekende certificaten, verboden in productie.
fetch API
Native browser JavaScript API voor HTTP-verzoeken, retourneert Promise, ondersteund door alle moderne browsers.
Axios
Populaire Promise-gebaseerde HTTP-clientbibliotheek, universeel voor browser en Node.js, automatische JSON-serialisatie, interceptors, timeout en annulering.
OkHttp
Java/Android HTTP-clientbibliotheek van Square, hoogwaardig, met HTTP/2-ondersteuning, verbindingspool, transparante GZIP.
HttpClient (.NET)
Aanbevolen HTTP-client voor C#/.NET, System.Net.Http naamruimte, standaard API in .NET Core/.NET 5+.
Invoke-RestMethod
Ingebouwde PowerShell 3.0+ cmdlet voor HTTP-verzoeken, parseert automatisch JSON/XML-antwoorden naar PowerShell-objecten.

Vergelijkingstabel van veelgebruikte cURL-opties met 11 doeltalen

Veelvoorkomende Content-Type-waarden en gebruik in cURL

Vergelijking van drie Copy as cURL-formaten uit Chrome DevTools

Troubleshooting