Převést curl do C
curl2code převádí curl příkazy na kód v C pomocí libcurl. Převod probíhá ve vašem prohlížeči přes WebAssembly pro úplné soukromí. Pro Rust se podívejte na náš převodník curl do Rustu. Pro Go viz curl do Go. Níže jsou praktické příklady v C s řádnou správou paměti.
Jak zkopírovat curl z prohlížeče
- 1
Otevřete DevTools
Stiskněte F12 nebo Ctrl+Shift+I pro otevření vývojářských nástrojů prohlížeče.
- 2
Přejděte na kartu Network
Klikněte na kartu Network a proveďte akci, která vyvolá HTTP požadavek.
- 3
Zkopírovat jako cURL
Klikněte pravým tlačítkem na požadavek → Copy → Copy as cURL. Poté jej vložte výše.
Často kladené dotazy
Co je libcurl?
libcurl je knihovna v C, která stojí za příkazovým nástrojem curl. Je to nejpřenosnější a nejrozšířenější knihovna HTTP klienta, podporující více než 25 protokolů. Používají ji tisíce aplikací a vestavěných systémů. Přidejte ji pomocí správce balíčků vašeho systému nebo ji nalinkujte staticky. curl2code generuje kód libcurl v C pomocí rozhraní easy.
libcurl easy vs multi interface — které použít?
Rozhraní easy (curl_easy_*) je pro jednotlivé synchronní přenosy — jednoduché a přímočaré. Rozhraní multi (curl_multi_*) umožňuje neblokující souběžné přenosy v jediném vlákně. Easy použijte pro skripty a jednoduché nástroje, multi pro vysoce výkonné aplikace. Pro vyšší programovací jazyk rodiny C viz curl do Rustu.
Jak řešit autentizaci s libcurl?
Pro Bearer: nastavte vlastní hlavičku pomocí curl_slist_append(headers, "Authorization: Bearer token"). Pro Basic auth: curl_easy_setopt(curl, CURLOPT_USERPWD, "user:pass"). libcurl automaticky zakóduje přihlašovací údaje Basic auth. curl2code převádí -u a přepínače hlaviček na správná volání C API.
Jak poslat multipart form data s libcurl?
Použijte MIME API (libcurl 7.56+): curl_mime_init() pro vytvoření mime struktury, curl_mime_addpart() pro každé pole, curl_mime_name() a curl_mime_filedata() pro nahrávání souborů. Nastavte pomocí CURLOPT_MIMEPOST. Uvolněte pomocí curl_mime_free().
Jak řešit chyby s libcurl?
Každá funkce curl_easy_* vrací CURLcode — zkontrolujte jej proti CURLE_OK. Použijte curl_easy_strerror(code) pro lidsky čitelné zprávy. Nastavte CURLOPT_ERRORBUFFER pro podrobné chybové řetězce. HTTP stav získáte pomocí curl_easy_getinfo(curl, CURLINFO_RESPONSE_CODE, &code).
Jak spravovat paměť s libcurl?
Po dokončení práce s handlem vždy zavolejte curl_easy_cleanup(). Seznamy hlaviček uvolněte pomocí curl_slist_free_all(). MIME struktury uvolněte pomocí curl_mime_free(). Pro write callbacky si spravujte vlastní alokaci bufferu. Při ukončení programu zavolejte jednou curl_global_cleanup(). Neuvolnění prostředků způsobuje úniky paměti.
Jak nastavit timeouty s libcurl?
Nastavte CURLOPT_CONNECTTIMEOUT pro timeout připojení a CURLOPT_TIMEOUT pro celkový čas přenosu (oboje v sekundách). Pro přesnost na milisekundy použijte CURLOPT_CONNECTTIMEOUT_MS a CURLOPT_TIMEOUT_MS. Jsou to přesně ty samé volby, které používá curl CLI s --connect-timeout a --max-time.
Jak nakonfigurovat proxy s libcurl?
Nastavte CURLOPT_PROXY na URL proxy: curl_easy_setopt(curl, CURLOPT_PROXY, "http://proxy:8080"). Pro SOCKS5: nastavte CURLOPT_PROXYTYPE na CURLPROXY_SOCKS5. Pro autentizaci proxy: CURLOPT_PROXYUSERPWD. libcurl také respektuje proměnnou prostředí http_proxy.
Jak odeslat POST požadavek s JSON tělem v C?
Převeďte curl POST příkaz jako curl -X POST -H "Content-Type: application/json" -d "{"key":"value"}" URL do C pomocí curl2code. Vygenerovaný kód používá curl_easy_setopt(curl, CURLOPT_POSTFIELDS, json_string). curl2code automaticky detekuje -d/--data přepínače s JSON obsahem a nastaví odpovídající Content-Type hlavičku v kódu pro libcurl.
Jak přidat autorizaci pomocí Bearer tokenu v C?
Vložte curl -H "Authorization: Bearer YOUR_TOKEN" URL do curl2code a nástroj vygeneruje kód pro libcurl s autorizační hlavičkou: struct curl_slist *headers = curl_slist_append(NULL, "Authorization: Bearer TOKEN"). curl2code detekuje Bearer tokeny z přepínačů -H "Authorization: Bearer ..." i --oauth2-bearer. Pro Basic auth použijte -u user:pass.
Jak nastavit hlavičku Content-Type v C?
curl2code převede curl -H "Content-Type: application/json" URL na kód pro libcurl se správnou hlavičkou: curl_slist_append(headers, "Content-Type: application/json"). Pro data u -d curl standardně používá application/x-www-form-urlencoded; pro nahrávání formulářů přes -F používá multipart/form-data. curl2code mapuje každý z nich na správné libcurl API.