curl konvertálása C nyelvre
A curl2code a libcurl használatával konvertálja a curl parancsokat C kóddá. A konverzió a böngészőben fut WebAssembly segítségével a teljes adatvédelem érdekében. Rust esetén nézze meg a curl to Rust konverterünket. Go esetén lásd: curl to Go. Alább gyakorlati C példákat talál megfelelő memóriakezeléssel.
Hogyan másoljuk ki a curl parancsot a böngészőből
- 1
Nyissa meg a DevTools-t
Nyomja meg az F12 billentyűt vagy a Ctrl+Shift+I a böngésző fejlesztői eszközeinek megnyitásához.
- 2
Lépjen a Network fülre
Kattintson a Network fülre, és hajtsa végre a HTTP kérést kiváltó műveletet.
- 3
Másolás cURL-ként
Kattintson a jobb gombbal a kérésre → Copy → Copy as cURL. Ezután illessze be fent.
Gyakran Ismételt Kérdések
Mi az a libcurl?
A libcurl a curl parancssori eszköz mögött álló C könyvtár. Ez a létező leghordozhatóbb és legszélesebb körben használt HTTP kliens könyvtár, amely több mint 25 protokollt támogat. Alkalmazások és beágyazott rendszerek ezrei használják. Hozzáadható a rendszer csomagkezelőjével vagy statikus linkeléssel. A curl2code libcurl C kódot generál az easy interfész használatával.
libcurl easy vs multi interfész — melyiket használjam?
Az easy interfész (curl_easy_*) egyedi szinkron átvitelekhez való — egyszerű és közvetlen. A multi interfész (curl_multi_*) nem blokkoló, párhuzamos átviteleket tesz lehetővé egyetlen szálon. Használd az easy-t szkriptekhez és egyszerű eszközökhöz, a multi-t pedig nagy teljesítményű alkalmazásokhoz. Magasabb szintű C-családba tartozó nyelvért lásd: curl to Rust.
Hogyan kezelhető a hitelesítés libcurl-lel?
Bearer esetén állíts be egy egyedi fejlécet a curl_slist_append(headers, "Authorization: Bearer token") használatával. Basic auth-hoz: curl_easy_setopt(curl, CURLOPT_USERPWD, "user:pass"). A libcurl automatikusan kódolja a Basic auth hitelesítő adatokat. A curl2code a -u és fejléc flageket a megfelelő C API hívásokra konvertálja.
Hogyan küldhetők multipart form adatok libcurl-lel?
Használd a MIME API-t (libcurl 7.56+): curl_mime_init() a mime struktúra létrehozásához, curl_mime_addpart() minden mezőhöz, curl_mime_name() és curl_mime_filedata() fájlfeltöltéshez. Állítsd be a CURLOPT_MIMEPOST opcióval. Szabadítsd fel a curl_mime_free() függvénnyel.
Hogyan kezelhetők a hibák libcurl-ben?
Minden curl_easy_* függvény egy CURLcode értéket ad vissza — ellenőrizd a CURLE_OK értékkel szemben. Használd a curl_easy_strerror(code) függvényt az olvasható üzenetekhez. Állítsd be a CURLOPT_ERRORBUFFER opciót a részletes hibaüzenetekhez. Kérd le a HTTP státuszt a curl_easy_getinfo(curl, CURLINFO_RESPONSE_CODE, &code) hívással.
Hogyan kezelhető a memória libcurl-ben?
Mindig hívd meg a curl_easy_cleanup() függvényt, ha végeztél egy handle-lel. Szabadítsd fel a fejléclistákat a curl_slist_free_all() függvénnyel. Szabadítsd fel a MIME struktúrákat a curl_mime_free() függvénnyel. Write callback-ek esetén magadnak kell kezelned a pufferfoglalást. Hívd meg a curl_global_cleanup() függvényt egyszer a program kilépésekor. Az erőforrások felszabadításának elmulasztása memóriaszivárgást okoz.
Hogyan állítható be időtúllépés libcurl-ben?
Állítsd be a CURLOPT_CONNECTTIMEOUT opciót a kapcsolódási időtúllépéshez és a CURLOPT_TIMEOUT opciót a teljes átviteli időhöz (mindkettő másodpercben). Ezredmásodperces pontossághoz használd a CURLOPT_CONNECTTIMEOUT_MS és CURLOPT_TIMEOUT_MS opciókat. Ezek pontosan ugyanazok az opciók, amelyeket a curl CLI használ a --connect-timeout és --max-time kapcsolókkal.
Hogyan konfigurálható proxy libcurl-ben?
Állítsd be a CURLOPT_PROXY opciót a proxy URL-re: curl_easy_setopt(curl, CURLOPT_PROXY, "http://proxy:8080"). SOCKS5 esetén: állítsd a CURLOPT_PROXYTYPE opciót CURLPROXY_SOCKS5 értékre. Proxy hitelesítéshez: CURLOPT_PROXYUSERPWD. A libcurl tiszteletben tartja a http_proxy környezeti változót is.
Hogyan küldhető POST kérés JSON törzzsel C nyelven?
Konvertáljon egy olyan curl POST parancsot, mint a curl -X POST -H "Content-Type: application/json" -d "{"key":"value"}" URL, C kódra a curl2code segítségével. A generált kód a curl_easy_setopt(curl, CURLOPT_POSTFIELDS, json_string) megoldást használja. A curl2code automatikusan felismeri a JSON tartalmú -d/--data flageket, és beállítja a megfelelő Content-Type fejlécet a libcurl kódban.
Hogyan adható hozzá Bearer token hitelesítés C nyelven?
Adja át a curl -H "Authorization: Bearer YOUR_TOKEN" URL parancsot a curl2code eszköznek, és az legenerálja a libcurl kódot az auth fejléccel: struct curl_slist *headers = curl_slist_append(NULL, "Authorization: Bearer TOKEN"). A curl2code felismeri a Bearer tokeneket a -H "Authorization: Bearer ..." és a --oauth2-bearer flagekből is. Basic auth esetén használja a -u user:pass kapcsolót.
Hogyan állítható be a Content-Type fejléc C nyelven?
A curl2code a curl -H "Content-Type: application/json" URL parancsot a megfelelő fejléccel ellátott libcurl kódra konvertálja: curl_slist_append(headers, "Content-Type: application/json"). A -d adatoknál a curl alapértelmezés szerint az application/x-www-form-urlencoded értéket használja; a -F űrlapfeltöltéseknél pedig a multipart/form-data értéket. A curl2code mindegyiket a megfelelő libcurl API-hoz rendeli.
Hasznos linkek
curl útmutatók
curl hibakódok
Keress rá bármely curl kilépési kódra — okok, javítások és hibakeresési tippek.
Fájlok letöltése curl segítségével
Fájlok mentése -o és -O kapcsolókkal, átirányítások követése, letöltés folytatása és egyebek.
SSL, TLS és proxy
Tanúsítványok, TLS verziók, HTTP/SOCKS proxyk és egyéni DNS beállítása.