tigtools

cURL til kodeomformer

Lim inn en curl-kommando, for eksempel en som er kopiert fra nettleserens utviklerverktøy eller et API-dokument, og få tilsvarende kode på ønsket språk.

Kjører i nettleseren din Ingen registrering

Språk

Slik bruker du det

  1. Kopier en forespørsel som curl, for eksempel fra nettleserens utviklerverktøy (Nettverk-fanen, høyreklikk, Kopier som cURL) eller fra API-dokumentasjon.
  2. Lim den inn i boksen. Linjefortsettelser med \ er greit.
  3. Velg JavaScript fetch, Node.js axios, Python requests eller PHP cURL.
  4. Les eventuelle merknader under koden, og kopier eller last ned resultatet.

Slik fungerer det

Konvertereren deler først kommandoen opp i ord slik et POSIX-skall gjør: enkle anførselstegn, doble anførselstegn med omvendt skråstrek-escape, $'…'-strenger og linjefortsettelse med omvendt skråstrek forstås. Skallvariabler som $TOKEN utvides ikke; de beholdes som tekst.

Støttede curl-alternativer: 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 @file-opplastinger med ;type=), -u/--user, -G/--get, -I/--head, -A/--user-agent, -e/--referer, -b/--cookie (cookie-strenger), -L/--location og --compressed. Korte alternativer kan kombineres, som i -sSL, og verdier kan festes, som i -XPOST.

Reglene følger curl: flere -d-verdier settes sammen med &; data gjør forespørselen til en POST-forespørsel med mindre -X eller -G sier noe annet; -G legger dataene til URL-en som en spørrestreng; --json setter headere Content-Type og Accept til application/json. Når innholdet er JSON og Content-Type sier det, sender koden et ekte objekt (json= i Python, en tabell med json_encode i PHP) i stedet for en escaped streng. For multipart-skjemaer overlates Content-Type-headeren til biblioteket slik at boundary blir riktig.

-k/--insecure ignoreres med vilje, og en merknad forklarer det. Alternativer som bare endrer curls egen utdata (-s, -S, -v, -i, -o, --fail og lignende) ignoreres med en merknad. Ethvert annet alternativ gir en tydelig feil som navngir det, i stedet for kode som i stillhet gjør noe annet. Én forskjell gjenstår: curl følger omdirigeringer bare med -L, mens fetch, axios og requests følger dem som standard; PHP-koden følger dem bare når -L ble oppgitt.

Verktøyet skriver bare kode. Det sender aldri forespørselen, så tokener og passord i kommandoen brukes ikke noe sted.

Eksempler

Gjenskape en nettleserforespørsel i Python

Kopier et mislykket API-kall fra Chromes Nettverk-fane som cURL, og konverter det til Python requests. Headerne, informasjonskapslene og JSON-innholdet følger med, slik at du kan gjenskape feilen i et skript.

Bruke API-dokumentasjon i Node.js

En API-referanse viser «curl -u key: https://api.example.com/v1/charges -d amount=2000 -d currency=eur». axios-versjonen bruker auth: { username: "key", password: "" } og en skjemakodet brødtekst.

Filopplasting i PHP

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

Ofte stilte spørsmål

Sender dette verktøyet forespørselen min?

Nei. Verktøyet analyserer bare kommandoteksten og skriver kode. Ingen forespørsel sendes, så API-nøkler eller informasjonskapsler i kommandoen brukes ikke eller lagres.

Hvorfor blir ikke -k/--insecure konvertert?

Å slå av sertifikatsjekker gjør tilkoblingen åpen for avlytting. Den genererte koden beholder sjekkene; hvis et serversertifikat ikke er klarert, bør du heller fikse sertifikatet eller tillitslageret.

Hvorfor får jeg «alternativet støttes ikke»?

Omformeren oversetter bare alternativer der betydningen kan reproduseres nøyaktig. Proxyer, klientsertifikater, cookie-lagre og lignende alternativer avvises, slik at du ikke får kode som oppfører seg annerledes enn curl.

Fungerer det med Windows cmd-kommandoer?

Kommandoer kopiert som «cURL (bash)» fungerer best. Windows cmd bruker ^ for linjefortsettelse og en annen form for anførselstegn; ^ på slutten av linjen godtas, men andre cmd-escape-tegn støttes kanskje ikke.

Personvern

Kommandoen analyseres bare i nettleseren din, og ingen forespørsel sendes. Ingenting lastes opp, lagres eller inngår i statistikk.