tigtools

cURL til kodekonverter

Indsæt en curl-kommando, for eksempel en, der er kopieret fra browserens udviklerværktøjer eller et API-dokument, og få tilsvarende kode på dit programmeringssprog.

Kører i din browser Ingen tilmelding

Sprog

Sådan bruger du det

  1. Kopier en forespørgsel som curl, for eksempel fra browserens udviklerværktøjer (fanen Netværk, højreklik, Kopier som cURL) eller fra API-dokumentation.
  2. Indsæt den i feltet. Linjefortsættelser med \ er i orden.
  3. Vælg JavaScript fetch, Node.js axios, Python requests eller PHP cURL.
  4. Læs eventuelle bemærkninger under koden, og kopier eller download derefter resultatet.

Sådan fungerer det

Konverteren opdeler først kommandoen i ord, som en POSIX-skal gør: enkelte anførselstegn, dobbelte anførselstegn med backslash-escapes, $'…'-strenge og backslash-linje fortsættelser forstås. Shell-variabler som $TOKEN udvides ikke; de forbliver tekst.

Understøttede curl-indstillinger: URL'en (eller --url), -X/--request, -H/--header, -d/--data, --data-ascii, --data-raw, --data-binary, --data-urlencode, --json, -F/--form og --form-string (felter og @fil-uploads med ;type=), -u/--user, -G/--get, -I/--head, -A/--user-agent, -e/--referer, -b/--cookie (cookie-strenge), -L/--location og --compressed. Korte indstillinger kan kombineres, som i -sSL, og værdier kan vedhæftes, som i -XPOST.

Reglerne følger curl: flere -d-værdier forbindes med &; data gør anmodningen til en POST, medmindre -X eller -G siger andet; -G tilføjer dataene til URL'en som en forespørgselsstreng; --json sætter Content-Type- og Accept-headere til application/json. Når brødteksten er JSON, og Content-Type angiver det, sender koden et rigtigt objekt (json= i Python, et array med json_encode i PHP) i stedet for en escaped streng. For multipart-formularer overlades Content-Type-headeren til biblioteket, så grænsen er korrekt.

-k/--insecure ignoreres med vilje, og en note forklarer det. Indstillinger, der kun ændrer curls egen output (-s, -S, -v, -i, -o, --fail og lignende), ignoreres med en note. Enhver anden indstilling giver en klar fejl, der nævner den, frem for kode, der stille og roligt gør noget andet. Én forskel består: curl følger omdirigeringer kun med -L, mens fetch, axios og requests følger dem som standard; PHP-koden følger dem kun, når -L er angivet.

Værktøjet skriver kun kode. Det sender aldrig anmodningen, så tokens og adgangskoder i kommandoen bruges ikke nogen steder.

Eksempler

Reproducering af en browseranmodning i Python

Kopier et fejlende API-kald fra Chromes Netværk-fane som cURL, og konverter det til Python requests. Headere, cookies og JSON-brødtekst følger med, så du kan reproducere fejlen i et script.

Brug af API-dokumentation i Node.js

En API-reference viser “curl -u key: https://api.example.com/v1/charges -d amount=2000 -d currency=eur”. Axios-versionen bruger auth: { username: "key", password: "" } og en formular-kodet brødtekst.

Filupload i PHP

“curl -F 'file=@invoice.pdf;type=application/pdf' -F 'note=March' https://x.io/upload” bliver til CURLOPT_POSTFIELDS med new CURLFile('invoice.pdf', 'application/pdf') og note-feltet.

Ofte stillede spørgsmål

Sender dette værktøj min anmodning?

Nej. Det parser kun kommandoteksten og skriver kode. Der foretages ingen anmodning, så API-nøgler eller cookies i kommandoen ikke bruges eller gemmes.

Hvorfor konverteres -k/--insecure ikke?

At slå certifikatkontrollen fra gør forbindelsen åben for aflytning. Den genererede kode beholder kontrollen slået til; hvis et servercertifikat ikke er betroet, skal du rette certifikatet eller trust store i stedet.

Hvorfor får jeg “option is not supported”?

Konvertereren oversætter kun de optioner, hvis betydning den kan gengive nøjagtigt. Proxyer, klientcertifikater, cookie jar-filer og lignende optioner afvises, så du ikke får kode, der opfører sig anderledes end curl.

Virker det med Windows cmd-kommandoer?

Kommandoer, der kopieres som “cURL (bash)”, fungerer bedst. Windows cmd bruger ^ til linjefortsættelse og andre regler for anførselstegn; ^ i slutningen af linjer accepteres, men andre cmd-escape-tegn bliver muligvis ikke accepteret.

Privatliv

Kommandoen fortolkes kun i din browser, og der sendes ingen forespørgsel. Intet uploades, gemmes eller indgår i analyser.