Creare un comando curl da una richiesta HTTP
Trasformi metodo, indirizzo, intestazioni e corpo in un comando curl da incollare direttamente nel terminale: un apostrofo come quello di Margaret's test viene protetto in modo sicuro e il terminale non fraintende mai i suoi dati. Gratis nel suo browser.
- Gratis
- Funziona nel suo browser
- Senza registrazione
- I suoi dati restano sul dispositivo
Esegui gratis nel browser
Indichi il metodo, un URL assoluto, le intestazioni e, se serve, un corpo testuale. Il generatore protegge ogni valore dinamico, inclusi spazi, query, segni e apostrofi, affinché la shell non interpreti i dati come sintassi.
Descriva la richiesta da riprodurre
Aggiunga le intestazioni come righe ordinate di nome e valore quando servono autorizzazione, negoziazione dei contenuti, tracciamento, condizioni o un tipo di contenuto dichiarato. Inserisca il corpo solo se la richiesta lo prevede; una stringa vuota indica intenzionalmente un corpo vuoto, mentre un campo omesso non aggiunge opzioni dati. Il comando usa un’opzione esplicita per il metodo, l’URL protetto, un’opzione per ogni intestazione e dati grezzi se il corpo è presente.
L’ordine delle intestazioni resta invariato.
Comprenda come il quoting protegge i valori
La shell interpreta la riga di comando prima che curl la riceva. Il generatore racchiude ogni argomento dinamico tra apici singoli POSIX. Se un valore contiene un apostrofo, chiude la sezione, inserisce il carattere letterale in un frammento tra virgolette doppie e riapre gli apici.
La sequenza sembra insolita, ma conserva i byte esatti in sh, bash, dash e zsh. Ogni intestazione resta un solo argomento con nome, due punti, spazio e valore. Il corpo usa l’opzione per dati grezzi, così una chiocciola iniziale non viene letta come file.
L’output è destinato alle shell POSIX; PowerShell e il Prompt dei comandi di Windows seguono regole diverse.
Controlli il risultato prima di usarlo
Il generatore rifiuta un URL assente o relativo perché un frammento come /users/42 è ambiguo fuori dall’applicazione che fornisce l’indirizzo di base. Rilegga il comando, specialmente in presenza di autorizzazioni, cookie di sessione, dati personali o host di produzione. Preferisca credenziali di prova temporanee e rimuova i segreti prima di condividere il comando.
La generazione è deterministica: lo stesso input produce sempre lo stesso testo, adatto a snapshot, documentazione, segnalazioni riproducibili e revisioni in cui ogni piccola modifica deve restare evidente.
Casi d'uso
Condividere una richiesta con il team
Fornisca un comando deterministico che conservi la struttura e faciliti la revisione.
Domande frequenti
Perché l’URL deve essere assoluto?
Un URL relativo dipende da un indirizzo di base non indicato e non rappresenta da solo una richiesta curl completa.
Come vengono gestiti gli apostrofi?
Ogni apostrofo chiude la sezione tra apici singoli, viene inserito letteralmente e poi la sezione riprende.
Posso usare il risultato in PowerShell?
L’output è progettato per shell compatibili POSIX; PowerShell applica regole di analisi e quoting diverse.
I segreti vengono rimossi dalle intestazioni?
No. I valori restano esatti; rimuova le credenziali prima di condividere il comando.
La richiesta viene inviata al posto mio?
No. Lo strumento converte soltanto metodo, indirizzo, intestazioni e corpo che lei indica in una riga di comando. Non viene inviato nulla, nessun server viene contattato e i suoi dati restano invariati, quindi rilegga il comando prima di eseguirlo.
Strumenti correlati
Per sviluppatori — accesso via API
Tutto quello che vedi in questa pagina è disponibile anche via API. Questa sezione è per i team che vogliono integrarlo nei propri sistemi; chi non ne ha bisogno può semplicemente usare lo strumento qui sopra.
Endpoint
Autenticazione con Bearer token: un POST mette in coda l'attività e il risultato arriva via webhook o link firmato.
Chiamala dal tuo stack
curl -X POST https://api.kit.forhosting.com/dev2/curl-command-build \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"method":"POST","url":"https://api.example.com/v1/widgets?draft=true"}'const res = await fetch("https://api.kit.forhosting.com/dev2/curl-command-build", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"method": "POST",
"url": "https://api.example.com/v1/widgets?draft=true"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/dev2/curl-command-build",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"method": "POST",
"url": "https://api.example.com/v1/widgets?draft=true"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/dev2/curl-command-build", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"method":"POST","url":"https://api.example.com/v1/widgets?draft=true"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"method":"POST","url":"https://api.example.com/v1/widgets?draft=true"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/dev2/curl-command-build", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Esempio di richiesta
{
"method": "POST",
"url": "https://api.example.com/v1/widgets?draft=true"
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev2.curl_command_build",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L'API è asincrona: ricevi subito un task_id e puoi fare polling fino a 1 richiesta al secondo.
Prezzi
Prezzo pubblicato, senza token né crediti. Se l'attività fallisce, non paghi.
Errori
| HTTP | Codice | Significato |
|---|---|---|
401 | unauthorized | Chiave API mancante o non valida: controlla l'header Authorization. |
402 | insufficient_balance | Credito esaurito: ricarica per continuare a eseguire attività. |
404 | unknown_type | Tipo di attività sconosciuto: controlla il campo type della richiesta. |
429 | rate_limited | Troppe richieste in poco tempo: rallenta e riprova tra qualche secondo. |
Note tecniche
Trasformi una richiesta HTTP strutturata in un comando curl pronto da incollare in una shell compatibile con POSIX. È utile per diagnosticare API, riprodurre richieste dai log, scrivere documentazione e consegnare a un’altra persona una richiesta esatta senza comporre manualmente le opzioni.
Descriva la richiesta da riprodurre
Inizi dal metodo HTTP e dall’URL completo. L’URL deve essere assoluto: deve includere uno schema come HTTPS e le informazioni necessarie a curl per trovare la destinazione senza il contesto del browser o un indirizzo di base. Il generatore non invia nulla, non risolve l’host, non esamina credenziali e non modifica il payload.
Comprenda come il quoting protegge i valori
Copiare valori senza protezione può quindi cambiarne il significato: una e commerciale può avviare un processo, il dollaro espandere una variabile, gli spazi separare argomenti e le virgolette nel JSON diventare sintassi.
Controlli il risultato prima di usarlo
Convalida inoltre il metodo come token HTTP, controlla i nomi delle intestazioni, richiede valori testuali e rifiuta le interruzioni di riga. Questi controlli impediscono che una struttura errata venga nascosta da un quoting corretto, ma non stabiliscono se il server supporti il metodo, se l’URL punti all’ambiente previsto o se una credenziale possa essere divulgata.
Casi di integrazione
Riprodurre un errore API
Converta metodo, URL, intestazioni e corpo acquisito in un comando pronto per il debug locale.
Scrivere documentazione accurata
Generi esempi curl coerenti senza proteggere manualmente JSON, parametri di query o intestazioni.
Domande tecniche
Quanto costa?
Lo strumento nel browser è gratuito. L’esecuzione via API costa $0.002 per richiesta.
Lo strumento invia la richiesta HTTP?
No. Genera soltanto il testo della riga di comando e non accede alla rete.