Convertește curl în C
curl2code convertește comenzile curl în cod C folosind libcurl. Conversia rulează în browserul tău prin WebAssembly pentru confidențialitate deplină. Pentru Rust, verifică convertorul nostru curl în Rust. Pentru Go, vezi curl în Go. Mai jos sunt exemple practice C cu gestionare corectă a memoriei.
Cum să copiezi curl din browserul tău
- 1
Deschide DevTools
Apasă F12 sau Ctrl+Shift+I pentru a deschide instrumentele de dezvoltare ale browserului.
- 2
Mergi la fila Network
Fă clic pe fila Network și efectuează acțiunea care declanșează cererea HTTP.
- 3
Copiază ca cURL
Fă clic dreapta pe cerere → Copy → Copy as cURL. Apoi lipește-o mai sus.
Întrebări frecvente
Ce este libcurl?
libcurl este biblioteca C din spatele instrumentului în linie de comandă curl. Este cea mai portabilă și mai utilizată bibliotecă de client HTTP existentă, suportând peste 25 de protocoale. Este utilizată de mii de aplicații și sisteme integrate. Adăugați-o cu managerul de pachete al sistemului sau linkați-o static. curl2code generează cod C libcurl folosind interfața easy.
libcurl easy vs multi interface — pe care să o folosesc?
Interfața easy (curl_easy_*) este pentru transferuri sincrone unice — simplă și directă. Interfața multi (curl_multi_*) permite transferuri concurente non-blocante într-un singur thread. Folosiți easy pentru scripturi și instrumente simple, multi pentru aplicații de înaltă performanță. Pentru un limbaj din familia C de nivel superior, consultați curl to Rust.
Cum se gestionează autentificarea cu libcurl?
Pentru Bearer: setați un header personalizat cu curl_slist_append(headers, "Authorization: Bearer token"). Pentru autentificarea Basic: curl_easy_setopt(curl, CURLOPT_USERPWD, "user:pass"). libcurl codează automat credențialele Basic auth. curl2code convertește flag-urile -u și headerele în apelurile corecte ale API-ului C.
Cum se trimit date de tip multipart form cu libcurl?
Folosiți API-ul MIME (libcurl 7.56+): curl_mime_init() pentru a crea o structură mime, curl_mime_addpart() pentru fiecare câmp, curl_mime_name() și curl_mime_filedata() pentru încărcări de fișiere. Setați cu CURLOPT_MIMEPOST. Eliberați cu curl_mime_free().
Cum se gestionează erorile cu libcurl?
Fiecare funcție curl_easy_* returnează un CURLcode — verificați-l față de CURLE_OK. Folosiți curl_easy_strerror(code) pentru mesaje lizibile de către om. Setați CURLOPT_ERRORBUFFER pentru șiruri de eroare detaliate. Obțineți statusul HTTP cu curl_easy_getinfo(curl, CURLINFO_RESPONSE_CODE, &code).
Cum se gestionează memoria cu libcurl?
Apelați întotdeauna curl_easy_cleanup() când ați terminat cu un handle. Eliberați listele de headere cu curl_slist_free_all(). Eliberați structurile MIME cu curl_mime_free(). Pentru callback-urile de scriere, gestionați propria alocare a bufferului. Apelați curl_global_cleanup() o singură dată la ieșirea din program. Ne-eliberarea resurselor cauzează scurgeri de memorie.
Cum se setează timeout-urile cu libcurl?
Setați CURLOPT_CONNECTTIMEOUT pentru timeout-ul conexiunii și CURLOPT_TIMEOUT pentru timpul total de transfer (ambele în secunde). Pentru precizie la nivel de milisecunde, folosiți CURLOPT_CONNECTTIMEOUT_MS și CURLOPT_TIMEOUT_MS. Acestea sunt exact aceleași opțiuni pe care curl CLI le folosește cu --connect-timeout și --max-time.
Cum se configurează un proxy cu libcurl?
Setați CURLOPT_PROXY la URL-ul proxy-ului: curl_easy_setopt(curl, CURLOPT_PROXY, "http://proxy:8080"). Pentru SOCKS5: setați CURLOPT_PROXYTYPE la CURLPROXY_SOCKS5. Pentru autentificare proxy: CURLOPT_PROXYUSERPWD. libcurl respectă, de asemenea, variabila de mediu http_proxy.
Cum se trimite o cerere POST cu un corp JSON în C?
Convertește o comandă curl POST precum curl -X POST -H "Content-Type: application/json" -d "{"key":"value"}" URL în C folosind curl2code. Codul generat utilizează curl_easy_setopt(curl, CURLOPT_POSTFIELDS, json_string). curl2code detectează automat flag-urile -d/--data cu conținut JSON și setează antetul Content-Type corespunzător în codul libcurl.
Cum se adaugă autorizarea prin Bearer token în C?
Introdu curl -H "Authorization: Bearer YOUR_TOKEN" URL în curl2code și acesta va genera cod libcurl cu antetul de autentificare: struct curl_slist *headers = curl_slist_append(NULL, "Authorization: Bearer TOKEN"). curl2code detectează Bearer tokens atât din flag-urile -H "Authorization: Bearer ...", cât și din --oauth2-bearer. Pentru Basic auth, utilizează -u user:pass.
Cum se setează antetul Content-Type în C?
curl2code convertește curl -H "Content-Type: application/json" URL în cod libcurl cu antetul corect: curl_slist_append(headers, "Content-Type: application/json"). Pentru datele -d, curl folosește implicit application/x-www-form-urlencoded; pentru încărcările de formulare -F, folosește multipart/form-data. curl2code mapează fiecare opțiune către API-ul libcurl corect.
Linkuri utile
Ghiduri curl
Coduri de eroare curl
Caută orice cod de ieșire curl — cauze, rezolvări și sfaturi de depanare.
Descărcarea fișierelor cu curl
Salvează fișiere cu -o, -O, urmează redirecționări, reia descărcări și multe altele.
SSL, TLS și proxy
Configurează certificate, versiuni TLS, proxy-uri HTTP/SOCKS și DNS personalizat.