Converti curl in C

curl2code converte i comandi curl in codice C utilizzando libcurl. La conversione avviene nel tuo browser tramite WebAssembly per la massima privacy. Per Rust, consulta il nostro convertitore da curl a Rust. Per Go, vedi da curl a Go. Di seguito sono riportati esempi pratici in C con una corretta gestione della memoria.

Come copiare curl dal tuo browser

  1. 1

    Apri DevTools

    Premi F12 o Ctrl+Shift+I per aprire gli strumenti per sviluppatori del browser.

  2. 2

    Vai alla scheda Network

    Fai clic sulla scheda Network ed esegui l'azione che attiva la richiesta HTTP.

  3. 3

    Copia come cURL

    Fai clic con il tasto destro sulla richiesta → CopiaCopia come cURL. Quindi incollalo sopra.

Domande Frequenti

Cos'è libcurl?

libcurl è la libreria C alla base del comando curl. È la libreria client HTTP più portabile e ampiamente distribuita esistente, con supporto per oltre 25 protocolli. Utilizzata da migliaia di applicazioni e sistemi embedded. Aggiungila con il gestore pacchetti del tuo sistema o collegala staticamente. curl2code genera codice C libcurl utilizzando l'interfaccia easy.

libcurl interfaccia easy vs multi — quale usare?

L'interfaccia easy (curl_easy_*) è per singoli trasferimenti sincroni — semplice e diretta. L'interfaccia multi (curl_multi_*) consente trasferimenti concorrenti non bloccanti in un singolo thread. Usa easy per script e strumenti semplici, multi per applicazioni ad alte prestazioni. Per un linguaggio della famiglia C di livello superiore, vedi curl a Rust.

Come gestire l'autenticazione con libcurl?

Per Bearer: imposta un header personalizzato con curl_slist_append(headers, "Authorization: Bearer token"). Per l'autenticazione Basic: curl_easy_setopt(curl, CURLOPT_USERPWD, "user:pass"). libcurl codifica automaticamente le credenziali Basic. curl2code converte i flag -u e gli header nelle corrette chiamate API C.

Come inviare dati form multipart con libcurl?

Usa l'API MIME (libcurl 7.56+): curl_mime_init() per creare una struttura mime, curl_mime_addpart() per ogni campo, curl_mime_name() e curl_mime_filedata() per i caricamenti di file. Imposta con CURLOPT_MIMEPOST. Libera con curl_mime_free().

Come gestire gli errori con libcurl?

Ogni funzione curl_easy_* restituisce un CURLcode — controllalo rispetto a CURLE_OK. Usa curl_easy_strerror(code) per messaggi leggibili dall'uomo. Imposta CURLOPT_ERRORBUFFER per stringhe di errore dettagliate. Ottieni lo stato HTTP con curl_easy_getinfo(curl, CURLINFO_RESPONSE_CODE, &code).

Come gestire la memoria con libcurl?

Chiama sempre curl_easy_cleanup() quando hai finito con un handle. Libera le liste di header con curl_slist_free_all(). Libera le strutture MIME con curl_mime_free(). Per le callback di scrittura, gestisci la tua allocazione del buffer. Chiama curl_global_cleanup() una volta all'uscita del programma. La mancata liberazione delle risorse causa leak di memoria.

Come impostare i timeout con libcurl?

Imposta CURLOPT_CONNECTTIMEOUT per il timeout di connessione e CURLOPT_TIMEOUT per il tempo totale di trasferimento (entrambi in secondi). Per la precisione al millisecondo, usa CURLOPT_CONNECTTIMEOUT_MS e CURLOPT_TIMEOUT_MS. Queste sono le stesse opzioni che la CLI di curl usa con --connect-timeout e --max-time.

Come configurare un proxy con libcurl?

Imposta CURLOPT_PROXY sull'URL del proxy: curl_easy_setopt(curl, CURLOPT_PROXY, "http://proxy:8080"). Per SOCKS5: imposta CURLOPT_PROXYTYPE su CURLPROXY_SOCKS5. Per l'autenticazione proxy: CURLOPT_PROXYUSERPWD. libcurl rispetta anche la variabile d'ambiente http_proxy.

Come inviare una richiesta POST con un corpo JSON in C?

Converti un comando curl POST come curl -X POST -H "Content-Type: application/json" -d "{"key":"value"}" URL in C usando curl2code. Il codice generato utilizza curl_easy_setopt(curl, CURLOPT_POSTFIELDS, json_string). curl2code rileva automaticamente i flag -d/--data con contenuto JSON e imposta l'intestazione Content-Type appropriata nel codice libcurl.

Come aggiungere l''autorizzazione con Bearer token in C?

Passa curl -H "Authorization: Bearer YOUR_TOKEN" URL a curl2code e genererà il codice libcurl con l'intestazione di autenticazione: struct curl_slist *headers = curl_slist_append(NULL, "Authorization: Bearer TOKEN"). curl2code rileva i Bearer token sia dai flag -H "Authorization: Bearer ..." che --oauth2-bearer. Per la Basic auth, usa -u user:pass.

Come impostare l''intestazione Content-Type in C?

curl2code converte curl -H "Content-Type: application/json" URL in codice libcurl con l'intestazione corretta: curl_slist_append(headers, "Content-Type: application/json"). Per i dati -d, curl utilizza come predefinito application/x-www-form-urlencoded; per i caricamenti di moduli -F, utilizza multipart/form-data. curl2code mappa ciascuno alla corretta API di libcurl.

Link utili

Guide curl

Converti curl in altri linguaggi