Konwertuj curl na C
curl2code konwertuje polecenia curl na kod C przy użyciu libcurl. Konwersja odbywa się w przeglądarce poprzez WebAssembly, zapewniając pełną prywatność. W przypadku Rust, sprawdź nasz konwerter curl na Rust. W przypadku Go, zobacz curl na Go. Poniżej znajdują się praktyczne przykłady w C z poprawnym zarządzaniem pamięcią.
Jak skopiować polecenie curl z przeglądarki
- 1
Otwórz DevTools
Naciśnij F12 lub Ctrl+Shift+I, aby otworzyć narzędzia programistyczne przeglądarki.
- 2
Przejdź do karty Sieć
Kliknij kartę Sieć i wykonaj akcję, która wywołuje żądanie HTTP.
- 3
Kopiuj jako cURL
Kliknij żądanie prawym przyciskiem myszy → Kopiuj → Kopiuj jako cURL. Następnie wklej je powyżej.
Najczęściej zadawane pytania
Czym jest libcurl?
libcurl to biblioteka C stojąca za narzędziem wiersza poleceń curl. Jest to najbardziej przenośna i powszechnie wdrażana biblioteka klienta HTTP, obsługująca ponad 25 protokołów. Używana przez tysiące aplikacji i systemów wbudowanych. Dodaj ją za pomocą menedżera pakietów systemowych lub polinkuj statycznie. curl2code generuje kod C libcurl przy użyciu interfejsu easy.
Interfejs libcurl easy vs multi — którego użyć?
Interfejs easy (curl_easy_*) służy do pojedynczych transferów synchronicznych — jest prosty i bezpośredni. Interfejs multi (curl_multi_*) umożliwia nieblokujące transfery współbieżne w jednym wątku. Używaj easy dla skryptów i prostych narzędzi, a multi dla aplikacji o wysokiej wydajności. Dla języka wyższego poziomu z rodziny C zobacz curl na Rust.
Jak obsługiwać uwierzytelnianie w libcurl?
Dla Bearer: ustaw niestandardowy nagłówek za pomocą curl_slist_append(headers, "Authorization: Bearer token"). Dla uwierzytelniania Basic: curl_easy_setopt(curl, CURLOPT_USERPWD, "user:pass"). libcurl automatycznie koduje poświadczenia Basic. curl2code konwertuje flagi -u i nagłówki na poprawne wywołania API C.
Jak wysyłać dane formularza multipart w libcurl?
Użyj MIME API (libcurl 7.56+): curl_mime_init() aby utworzyć strukturę mime, curl_mime_addpart() dla każdego pola, curl_mime_name() i curl_mime_filedata() dla przesyłania plików. Ustaw za pomocą CURLOPT_MIMEPOST. Zwolnij pamięć przez curl_mime_free().
Jak obsługiwać błędy w libcurl?
Każda funkcja curl_easy_* zwraca CURLcode — sprawdź go pod kątem CURLE_OK. Użyj curl_easy_strerror(code) dla komunikatów czytelnych dla człowieka. Ustaw CURLOPT_ERRORBUFFER dla szczegółowych opisów błędów. Pobierz status HTTP za pomocą curl_easy_getinfo(curl, CURLINFO_RESPONSE_CODE, &code).
Jak zarządzać pamięcią w libcurl?
Zawsze wywołuj curl_easy_cleanup() po zakończeniu pracy z uchwytem. Zwalniaj listy nagłówków przez curl_slist_free_all(). Zwalniaj struktury MIME przez curl_mime_free(). W przypadku callbacków zapisu, samodzielnie zarządzaj alokacją bufora. Wywołaj curl_global_cleanup() raz przy wyjściu z programu. Brak zwalniania zasobów powoduje wycieki pamięci.
Jak ustawić limity czasu w libcurl?
Ustaw CURLOPT_CONNECTTIMEOUT dla limitu czasu połączenia i CURLOPT_TIMEOUT dla całkowitego czasu transferu (oba w sekundach). Dla precyzji milisekundowej użyj CURLOPT_CONNECTTIMEOUT_MS i CURLOPT_TIMEOUT_MS. Są to te same opcje, których używa CLI curl z --connect-timeout i --max-time.
Jak skonfigurować proxy w libcurl?
Ustaw CURLOPT_PROXY na URL proxy: curl_easy_setopt(curl, CURLOPT_PROXY, "http://proxy:8080"). Dla SOCKS5: ustaw CURLOPT_PROXYTYPE na CURLPROXY_SOCKS5. Dla uwierzytelniania proxy: CURLOPT_PROXYUSERPWD. libcurl respektuje również zmienną środowiskową http_proxy.
Jak wysłać żądanie POST z ciałem JSON w języku C?
Konwertuj polecenie curl POST, takie jak curl -X POST -H "Content-Type: application/json" -d "{"key":"value"}" URL na kod C za pomocą curl2code. Wygenerowany kod używa curl_easy_setopt(curl, CURLOPT_POSTFIELDS, json_string). curl2code automatycznie wykrywa flagi -d/--data z zawartością JSON i ustawia odpowiedni nagłówek Content-Type w kodzie libcurl.
Jak dodać autoryzację Bearer token w języku C?
Przekaż curl -H "Authorization: Bearer YOUR_TOKEN" URL do curl2code, a narzędzie wygeneruje kod libcurl z nagłówkiem autoryzacji: struct curl_slist *headers = curl_slist_append(NULL, "Authorization: Bearer TOKEN"). curl2code wykrywa tokeny Bearer zarówno z flag -H "Authorization: Bearer ...", jak i --oauth2-bearer. W przypadku Basic auth użyj -u user:pass.
Jak ustawić nagłówek Content-Type w języku C?
curl2code konwertuje curl -H "Content-Type: application/json" URL na kod libcurl z właściwym nagłówkiem: curl_slist_append(headers, "Content-Type: application/json"). Dla danych -d curl domyślnie ustawia application/x-www-form-urlencoded; dla przesyłania formularzy -F używa multipart/form-data. curl2code mapuje każde z nich na odpowiednie API libcurl.
Przydatne linki
Poradniki curl
Kody błędów curl
Sprawdź dowolny kod wyjścia curl — przyczyny, rozwiązania i wskazówki debugowania.
Pobieranie plików za pomocą curl
Zapisuj pliki z -o, -O, podążaj za przekierowaniami, wznawiaj pobieranie i więcej.
SSL, TLS i proxy
Konfiguracja certyfikatów, wersji TLS, proxy HTTP/SOCKS i niestandardowego DNS.