המרת curl ל-C
curl2code ממיר פקודות curl לקוד C באמצעות libcurl. ההמרה מתבצעת בדפדפן שלך דרך WebAssembly לפרטיות מלאה. עבור Rust, בדוק את ממיר curl ל-Rust. עבור Go, ראה curl ל-Go. להלן דוגמאות C מעשיות עם ניהול זיכרון תקין.
איך להעתיק curl מהדפדפן שלך
- 1
פתח את DevTools
לחץ על F12 או על Ctrl+Shift+I כדי לפתוח את כלי המפתחים של הדפדפן.
- 2
עבור ללשונית Network
לחץ על לשונית ה-Network ובצע את הפעולה שמפעילה את בקשת ה-HTTP.
- 3
העתק כ-cURL
לחץ קליק ימני על הבקשה ← Copy ← Copy as cURL. לאחר מכן הדבק אותה למעלה.
שאלות נפוצות (FAQ)
מהו libcurl?
libcurl היא ספריית ה-C שמאחורי כלי השורה curl. זוהי ספריית לקוח ה-HTTP הניידת והנפוצה ביותר שקיימת, התומכת ב-25+ פרוטוקולים. בשימוש על ידי אלפי אפליקציות ומערכות משובצות (embedded). הוסיפו עם מנהל החבילות של המערכת או קשרו סטטית. curl2code מייצר קוד libcurl C באמצעות ממשק ה-easy.
ממשק libcurl easy לעומת multi — במה להשתמש?
ממשק ה-easy (curl_easy_*) מיועד להעברות סינכרוניות בודדות — פשוט וישיר. ממשק ה-multi (curl_multi_*) מאפשר העברות מקביליות לא-חוסמות ב-thread בודד. השתמשו ב-easy עבור סקריפטים וכלים פשוטים, וב-multi עבור אפליקציות בעלות ביצועים גבוהים. לשפת משפחת C ברמה גבוהה יותר, ראו curl ל-Rust.
איך מטפלים באימות עם libcurl?
עבור Bearer: הגדירו כותרת מותאמת אישית עם curl_slist_append(headers, "Authorization: Bearer token"). עבור אימות Basic: curl_easy_setopt(curl, CURLOPT_USERPWD, "user:pass"). libcurl מקודד אוטומטית אישורי אימות Basic. curl2code ממיר דגלי -u וכותרות לקריאות ה-API הנכונות ב-C.
איך שולחים נתוני multipart form עם libcurl?
השתמשו ב-API של MIME (libcurl 7.56+): curl_mime_init() ליצירת מבנה mime, curl_mime_addpart() לכל שדה, curl_mime_name() ו-curl_mime_filedata() להעלאת קבצים. הגדירו עם CURLOPT_MIMEPOST. שחררו עם curl_mime_free().
איך מטפלים בשגיאות עם libcurl?
כל פונקציית curl_easy_* מחזירה CURLcode — בדקו מול CURLE_OK. השתמשו ב-curl_easy_strerror(code) להודעות קריאות לבני אדם. הגדירו CURLOPT_ERRORBUFFER למחרוזות שגיאה מפורטות. קבלו את סטטוס ה-HTTP עם curl_easy_getinfo(curl, CURLINFO_RESPONSE_CODE, &code).
איך מנהלים זיכרון עם libcurl?
קראו תמיד ל-curl_easy_cleanup() בסיום השימוש ב-handle. שחררו רשימות כותרות עם curl_slist_free_all(). שחררו מבני MIME עם curl_mime_free(). עבור write callbacks, נהלו את הקצאת הבאפר שלכם. קראו ל-curl_global_cleanup() פעם אחת ביציאה מהתוכנית. אי שחרור משאבים גורם לדליפות זיכרון.
איך מגדירים פסקי זמן עם libcurl?
הגדירו CURLOPT_CONNECTTIMEOUT לפסק זמן של חיבור ו-CURLOPT_TIMEOUT לזמן העברה כולל (שניהם בשניות). לדיוק של מילי-שניות, השתמשו ב-CURLOPT_CONNECTTIMEOUT_MS ו-CURLOPT_TIMEOUT_MS. אלו הן אותן אפשרויות שבהן משתמש curl CLI עם --connect-timeout ו---max-time.
איך מגדירים proxy עם libcurl?
הגדירו את CURLOPT_PROXY לכתובת ה-proxy: curl_easy_setopt(curl, CURLOPT_PROXY, "http://proxy:8080"). עבור SOCKS5: הגדירו את CURLOPT_PROXYTYPE ל-CURLPROXY_SOCKS5. עבור אימות פרוקסי: CURLOPT_PROXYUSERPWD. libcurl מכבד גם את משתנה הסביבה http_proxy.
איך שולחים בקשת POST עם גוף JSON ב-C?
המירו פקודת curl POST כמו curl -X POST -H "Content-Type: application/json" -d "{"key":"value"}" URL ל-C באמצעות curl2code. הקוד שנוצר משתמש ב-curl_easy_setopt(curl, CURLOPT_POSTFIELDS, json_string). curl2code מזהה באופן אוטומטי דגלי -d/--data עם תוכן JSON ומגדיר את כותרת Content-Type המתאימה בקוד ה-libcurl.
איך מוסיפים אימות Bearer token ב-C?
העבירו את curl -H "Authorization: Bearer YOUR_TOKEN" URL ל-curl2code והוא יפיק קוד libcurl עם כותרת האימות: struct curl_slist *headers = curl_slist_append(NULL, "Authorization: Bearer TOKEN"). curl2code מזהה Bearer tokens גם מדגלי -H "Authorization: Bearer ..." וגם מדגלי --oauth2-bearer. עבור Basic auth, השתמשו ב--u user:pass.
איך מגדירים כותרת Content-Type ב-C?
curl2code ממיר את curl -H "Content-Type: application/json" URL לקוד libcurl עם הכותרת המתאימה: curl_slist_append(headers, "Content-Type: application/json"). עבור נתוני -d, curl משתמש כברירת מחדל ב-application/x-www-form-urlencoded; עבור העלאות טפסים עם -F, הוא משתמש ב-multipart/form-data. curl2code ממפה כל אחד מהם ל-API הנכון של libcurl.