Jak používat
- Zkopírujte požadavek jako curl, například z vývojářských nástrojů prohlížeče (karta Síť, klikněte pravým tlačítkem, Kopírovat jako cURL) nebo z dokumentace API.
- Vložte jej do pole. Pokračování řádků pomocí \ je v pořádku.
- Vyberte JavaScript fetch, Node.js axios, Python requests nebo PHP cURL.
- Přečtěte si případné poznámky pod kódem a poté výsledek zkopírujte nebo stáhněte.
Jak to funguje
Převodník nejprve rozdělí příkaz na slova tak, jak to dělá shell POSIX: rozumí jednoduchým uvozovkám, dvojitým uvozovkám se zpětnými lomítky, řetězcům $'…' a pokračování řádku zpětným lomítkem. Proměnné shellu, například $TOKEN, se nerozbalí; zůstanou jako text.
Podporované volby curl: URL (nebo --url), -X/--request, -H/--header, -d/--data, --data-ascii, --data-raw, --data-binary, --data-urlencode, --json, -F/--form a --form-string (pole a nahrávání @file s ;type=), -u/--user, -G/--get, -I/--head, -A/--user-agent, -e/--referer, -b/--cookie (textové řetězce cookie), -L/--location a --compressed. Krátké volby lze kombinovat, jako v -sSL, a hodnoty lze připojit, jako v -XPOST.
Pravidla odpovídají curl: více hodnot -d se spojí pomocí &; data změní požadavek na POST, pokud -X nebo -G neurčí jinak; -G připojí data k URL jako dotazovací řetězec; --json nastaví hlavičky Content-Type a Accept na application/json. Když je tělo JSON a Content-Type to uvádí, kód odešle skutečný objekt (json= v Pythonu, pole s json_encode v PHP) místo escapovaného řetězce. U multipart formulářů se hlavička Content-Type ponechá knihovně, aby byla boundary správná.
-k/--insecure se záměrně ignoruje a poznámka to vysvětluje. Volby, které mění pouze výstup samotného curl (-s, -S, -v, -i, -o, --fail a podobné), se ignorují s poznámkou. Jakákoli jiná volba vyvolá jasnou chybu s jejím názvem, místo aby kód potichu dělal něco jiného. Zůstává jeden rozdíl: curl sleduje přesměrování jen s -L, zatímco fetch, axios a requests je sledují ve výchozím nastavení; kód PHP je sleduje jen tehdy, když bylo zadáno -L.
Nástroj pouze píše kód. Nikdy požadavek neodesílá, takže tokeny a hesla v příkazu se nikde nepoužijí.
Příklady
Reprodukce požadavku z prohlížeče v Pythonu
Zkopírujte neúspěšné volání API ze záložky Network v Chromu jako cURL a převeďte ho na Python requests. Hlavičky, cookies a tělo JSON se přenesou, takže chybu můžete reprodukovat ve skriptu.
Použití dokumentace API v Node.js
Referenční dokumentace API uvádí „curl -u key: https://api.example.com/v1/charges -d amount=2000 -d currency=eur“. Verze pro axios používá auth: { username: "key", password: "" } a tělo kódované jako formulář.
Nahrání souboru v PHP
„curl -F 'file=@invoice.pdf;type=application/pdf' -F 'note=March' https://x.io/upload“ se převede na CURLOPT_POSTFIELDS s new CURLFile('invoice.pdf', 'application/pdf') a položkou note.
Časté dotazy
Odesílá tento nástroj můj požadavek?
Ne. Nástroj pouze analyzuje text příkazu a vygeneruje kód. Neprovádí se žádný požadavek, takže klíče API ani cookies v příkazu se nepoužijí ani neukládají.
Proč se -k/--insecure nepřevádí?
Vypnutí kontrol certifikátů umožňuje odposlech komunikace. Vygenerovaný kód kontroly ponechává zapnuté; pokud certifikát serveru není důvěryhodný, opravte certifikát nebo úložiště důvěryhodných certifikátů.
Proč dostávám hlášku „volba není podporována“?
Převaděč převádí pouze volby, jejichž význam dokáže přesně reprodukovat. Proxy, klientské certifikáty, cookie jar a podobné volby jsou odmítnuty, abyste nedostali kód, který se chová jinak než curl.
Funguje to s příkazy Windows cmd?
Nejlépe fungují příkazy zkopírované jako „cURL (bash)“. Windows cmd používá pro pokračování řádku ^ a jiné uvozování; ^ na konci řádku se přijímá, ale jiné escapování cmd nemusí být podporováno.
Soukromí
Příkaz se analyzuje pouze ve vašem prohlížeči a neodesílá se žádný požadavek. Nic se nenahrává, neukládá ani nezahrnuje do analýz.