Come si usa
- Copia una richiesta come curl, ad esempio dagli strumenti per sviluppatori del browser (scheda Rete, clic destro, Copia come cURL) o dalla documentazione API.
- Incollala nel campo. Le continuazioni di riga con \ sono accettate.
- Scegli JavaScript fetch, Node.js axios, Python requests o PHP cURL.
- Leggi le eventuali note sotto il codice, quindi copia o scarica il risultato.
Come funziona
Il convertitore inizialmente suddivide il comando in parole come farebbe una shell POSIX: vengono riconosciuti apici singoli, doppi apici con escape tramite backslash, stringhe $'…' e continuazioni di riga con backslash. Le variabili di shell come $TOKEN non vengono espanse; restano come testo.
Opzioni curl supportate: l'URL (o --url), -X/--request, -H/--header, -d/--data, --data-ascii, --data-raw, --data-binary, --data-urlencode, --json, -F/--form e --form-string (campi e caricamenti @file con ;type=), -u/--user, -G/--get, -I/--head, -A/--user-agent, -e/--referer, -b/--cookie (stringhe di cookie), -L/--location e --compressed. Le opzioni brevi possono essere combinate, come in -sSL, e i valori possono essere attaccati, come in -XPOST.
Le regole seguono curl: più valori -d vengono uniti con &; i dati rendono la richiesta una POST a meno che -X o -G non indichino diversamente; -G aggiunge i dati all'URL come stringa di query; --json imposta le intestazioni Content-Type e Accept su application/json. Quando il corpo è JSON e il Content-Type lo indica, il codice invia un oggetto reale (json= in Python, un array con json_encode in PHP) invece di una stringa con escape. Per i moduli multipart, l'intestazione Content-Type viene lasciata alla libreria affinché il boundary sia corretto.
-k/--insecure viene ignorato di proposito e una nota lo spiega. Le opzioni che modificano solo l'output di curl (-s, -S, -v, -i, -o, --fail e simili) vengono ignorate con una nota. Qualsiasi altra opzione produce un errore chiaro che la nomina, anziché codice che fa silenziosamente qualcosa di diverso. Resta una differenza: curl segue i redirect solo con -L, mentre fetch, axios e requests li seguono per impostazione predefinita; il codice PHP li segue solo quando è stato dato -L.
Lo strumento scrive solo codice. Non invia mai la richiesta, quindi token e password presenti nel comando non vengono utilizzati da nessuna parte.
Esempi
Riprodurre una richiesta del browser in Python
Copia una chiamata API non riuscita dalla scheda Rete di Chrome come cURL e convertila in Python requests. Header, cookie e corpo JSON vengono inclusi, così puoi riprodurre il bug in uno script.
Usare la documentazione API in Node.js
Un riferimento API mostra “curl -u key: https://api.example.com/v1/charges -d amount=2000 -d currency=eur”. La versione axios usa auth: { username: "key", password: "" } e un corpo con codifica form.
Caricamento di file in PHP
“curl -F 'file=@invoice.pdf;type=application/pdf' -F 'note=March' https://x.io/upload” diventa CURLOPT_POSTFIELDS con new CURLFile('invoice.pdf', 'application/pdf') e il campo note.
Domande frequenti
Questo strumento invia la mia richiesta?
No. Analizza solo il testo del comando e genera il codice. Non viene eseguita alcuna richiesta, quindi eventuali chiavi API o cookie presenti nel comando non vengono usati né salvati.
Perché -k/--insecure non viene convertito?
Disattivare i controlli del certificato espone la connessione a intercettazioni. Il codice generato mantiene i controlli attivi; se il certificato di un server non è attendibile, correggi il certificato o l'archivio di attendibilità.
Perché ricevo “opzione non supportata”?
Il convertitore traduce solo le opzioni il cui significato può riprodurre esattamente. Proxy, certificati client, cookie jar e opzioni simili vengono rifiutate, così non ottieni codice che si comporta diversamente da curl.
Funziona con i comandi del cmd di Windows?
I comandi copiati come “cURL (bash)” funzionano meglio. Il cmd di Windows usa ^ per la continuazione di riga e un diverso uso delle virgolette; ^ a fine riga viene accettato, ma altre sequenze di escape di cmd potrebbero non essere accettate.
Privacy
Il comando viene analizzato solo nel tuo browser e non viene inviata alcuna richiesta. Nulla viene caricato, archiviato o incluso nelle statistiche.