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
Gegenereerde code
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
Hoe te gebruiken
- 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
- 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
- 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
- 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
- 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
- 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.)
- Kopieer de code: klik op de knop «Code kopiëren», plak in je project/terminal — de code is klaar om uit te voeren
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)
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.
Probleemoplossing
Na plakken van cURL-commando wordt «URL niet gevonden» weergegeven
Ontbrekend curl-commando voor de URL (alleen een fragment van HTTP-headers is geplakt) URL is naar een nieuwe regel verplaatst zonder backslash voor regelvervolg, de tool kan de meerregelige URL niet herkennen URL bevat speciale tekens (& etc.) die door de shell zijn afgekapt URL staat in enkele aanhalingstekens maar er zijn geneste enkele aanhalingstekens zonder escaping
Gegenereerde Python requests-code retourneert 401/403 bij uitvoering
Cookie/Token verlopen: bij het kopiëren van cURL uit DevTools waren de cookies op dat moment geldig, na enige tijd verlopen ze Ontbrekende User-Agent: sommige API's controleren User-Agent, curl uit de browser bevat browser-UA, maar in gegenereerde code kan deze behouden zijn of ontbreken Ontbrekende Referer/Origin-headers: sommige hotlink/CSRF-controles controleren deze headers Onjuiste sessieid-overdracht: sommige sites vereisen eerst inloggen om Cookie te verkrijgen voor het verzoek
POST JSON-gegevens worden niet door de server ontvangen
Ontbrekende Content-Type: application/json header: curl -d gebruikt standaard Content-Type application/x-www-form-urlencoded, niet JSON Dubbele aanhalingstekens in JSON-string zijn niet ge-escaped: verschillende shells (bash/cmd/PowerShell) behandelen aanhalingstekens verschillend, kopiëren van verkeerd formaat leidt tot onvolledige JSON JSON in gegenereerde code is dubbel ge-escape (object is opnieuw door JSON.stringify gehaald) Body bevat niet-ASCII tekens zonder correcte codering
Na uitvoeren van gegenereerde code treedt SSL/TLS-certificaatfout op
Doel HTTPS-site gebruikt zelfondertekend certificaat: -k is toegevoegd aan curl maar werkte niet in code (controleer of certificaat-overslaan-configuratie is gegenereerd) Node.js-omgevingsvariabele is niet ingesteld: bij detectie van -k wordt process.env.NODE_TLS_REJECT_UNAUTHORIZED='0' gegenereerd, dit moet vóór de fetch-aanroep worden geplaatst Bedrijfsproxy met SSL Inspection (tussenpersooncertificaat): bedrijfsrootcertificaat moet aan de vertrouwenslijst worden toegevoegd in plaats van verificatie uit te schakelen Python verify=False werkt alleen voor requests, de onderliggende urllib3 geeft nog steeds InsecureRequestWarning
Antwoordresultaat in gegenereerde code verschilt van cURL
Automatisch toegevoegde headers ontbreken: de browser voegt automatisch Host/Connection/Accept/Accept-Encoding/Accept-Language/Sec-Fetch-* etc. toe, het behouden of ontbreken van deze headers beïnvloedt het antwoord Omleidingsafhandeling inconsistent: fetch volgt standaard omleidingen, Go volgt standaard niet; deze tool genereert de bijbehorende configuratie op basis van de -L-parameter Compressiedecompressieverschillen: bij --compressed vereisen sommige bibliotheken expliciete configuratie voor automatische decompressie HTTP/2 vs HTTP/1.1: curl onderhandelt standaard over HTTP/2, sommige oude servers zijn gevoelig voor HTTP-versie Cookie Jar: curl -b verstuurt Cookie elke keer handmatig, sommige bibliotheken beheren Cookie automatisch, waardoor Cookie kan veranderen bij meerdere verzoeken
Gekopieerd cURL-commando is te lang, waardoor plakken wordt afgekapt/fouten geeft
Te veel headers (bijv. de browser heeft automatisch tientallen headers toegevoegd): verwijder handmatig onnodige headers (sec-ch-ua, sec-fetch-*, Accept, Accept-Language en andere niet-essentiële headers) Base64-gecodeerde bestanden/grote body maken het commando te lang: gebruik --data-binary @file om body uit een bestand te lezen Windows cmd-opdrachtregellengtelimiet (8191 tekens): gebruik PowerShell of kopieer cURL in bash-formaat vanuit WSL Afkapping door witruimte bij kopiëren: zorg dat je volledig kopieert vanuit DevTools met rechtermuisklik
Woordenlijst
- 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
| cURL-optie | Functie | JS fetch | Axios | Python requests | Go net/http | PHP cURL | Java OkHttp | C# HttpClient | PowerShell | wget |
|---|---|---|---|---|---|---|---|---|---|---|
| -X METHOD | HTTP-methode specificeren | method: 'POST' | method: 'post' | requests.request('POST') | http.NewRequest('POST') | CURLOPT_CUSTOMREQUEST | .method() | HttpMethod.Post | -Method POST | --method=POST |
| -H 'K: V' | Header toevoegen | headers: {} | headers: {} | headers={} | req.Header.Set | CURLOPT_HTTPHEADER | .addHeader() | .Headers.TryAddWithoutValidation | $headers=@{} | --header= |
| -d 'data' | Verzoekbody | body: data | data: data | data=/json= | strings.NewReader | CURLOPT_POSTFIELDS | RequestBody.create | new StringContent | -Body | --body-data= |
| -u user:pass | Basic Auth | Authorization-header | auth:{} | auth=(u,p) | req.SetBasicAuth | CURLOPT_USERPWD | Credentials.basic | new NetworkCredential | Automatisch in Header | --user/--password |
| -L | Omleidingen volgen | redirect:'follow' | maxRedirects: N | allow_redirects=True | Standaard CheckRedirect | CURLOPT_FOLLOWLOCATION | .followRedirects | AllowAutoRedirect=true | Volgt standaard | -L |
| -k | Certificaatverificatie overslaan | Browser ondersteunt dit niet | httpsAgent | verify=False | TLSClientConfig | CURLOPT_SSL_VERIFYPEER=false | Vereist aangepaste TrustManager | ServerCertificateCustomValidationCallback | -SkipCertificateCheck | --no-check-certificate |
| --compressed | Compressie accepteren | Standaard ondersteund | Automatische decompressie | Automatische decompressie | Handmatige gzip vereist | Automatische decompressie | Standaard ondersteund | AutomaticDecompression | -TransferEncoding | Standaard geen decompressie |
| -A UA | User-Agent | User-Agent-header | headers | headers={} | req.Header.Set | CURLOPT_USERAGENT | .header() | Standaard | -UserAgent | --user-agent= |
| -b cookie | Cookie | Cookie-header | headers/withCredentials | cookies={} | req.Header.Set | CURLOPT_COOKIE | .header() | CookieContainer | -WebSession | --header= |
| -m SECS | Timeout | AbortController | timeout:N | timeout=N | http.Client.Timeout | CURLOPT_TIMEOUT | .callTimeout | client.Timeout | -TimeoutSec | --timeout= |
Veelvoorkomende Content-Type-waarden en gebruik in cURL
| Content-Type | Gebruik | cURL-voorbeeld | Opmerking |
|---|---|---|---|
| application/json | JSON-gegevens verzenden | curl -H 'Content-Type: application/json' -d '{"a":1}' | Meest gebruikte API-type, -d stelt deze header standaard niet in, expliciete -H vereist |
| application/x-www-form-urlencoded | URL-encoded formulier | curl -d 'name=a&age=1' | -d zonder - gebruikt standaard dit type |
| multipart/form-data | Bestanden uploaden | curl -F 'file=@a.png' -F 'name=a' | -F stelt automatisch deze Content-Type en boundary in |
| text/plain | Platte tekst | curl -H 'Content-Type: text/plain' -d 'hello' | Gewone tekst, relatief weinig gebruikt in API's |
| application/octet-stream | Binaire gegevens | curl --data-binary @file.bin | Gebruik --data-binary voor het verzenden van ruwe binaire gegevens |
| application/xml | XML-gegevens | curl -H 'Content-Type: application/xml' -d '<x/>' | Gebruikt in SOAP/oude enterprise API's |
Vergelijking van drie Copy as cURL-formaten uit Chrome DevTools
| Formaat | Aanhalingstekens | Escape-teken | Gebruiksscenario |
|---|---|---|---|
| Copy as cURL (bash) | Enkele aanhalingstekens '...' | \' voor escapen van enkele aanhalingsteken | Linux/macOS/WSL/Git Bash, aanbevolen om in deze tool te plakken |
| Copy as cURL (cmd) | Dubbele aanhalingstekens "..." | ^ voor escapen van speciale tekens | Windows cmd.exe-opdrachtprompt |
| Copy as cURL (PowerShell) | Dubbele aanhalingstekens/backtick | ` voor escapen | Windows PowerShell 5/7 |
| Copy as fetch | JS template strings | Geen escaping nodig | Direct uitvoeren in browserconsole |
- Authenticatie Header Generator
- Cache-Control Parser
- Content-Disposition Parser
- CORS Header Generator
- CORS Inspecteur
- CSP Generator
- cURL naar Code Converter
- Globale DNS Propagatie Controle
- DNS-lookup
- Forwarded Header Parser
- Hreflang Tag Generator
- HSTS Analyzer
- HTTP Cookie Parser
- HTTP Headers Checker
- HTTP Request Tester
- HTTP Status Codes Opzoeken
- IP Opzoeken
- IPv4 Converter
- IPv4 Range Expander
- IPv6 Toolbox
- Link Header Parser
- MX Lookup
- Port Checker
- URL Parameter Builder
- Rate Limit Header Parser
- Redirect Checker
- Robots.txt Generator
- Robots.txt Checker
- Security Headers Checker
- Security.txt Generator
- Set-Cookie-Parser
- Site Network Audit
- Sitemap Generator
- Sitemap Inspector
- SSL Certificaat Controle
- Subnet Rekenmachine
- URL Parser
- User-Agent parser
- UTM Builder
- WebSocket Tester
- What Is My IP?
- WHOIS Opzoeken