המרת curl ל-C

curl2code ממיר פקודות curl לקוד C באמצעות libcurl. ההמרה מתבצעת בדפדפן שלך דרך WebAssembly לפרטיות מלאה. עבור Rust, בדוק את ממיר curl ל-Rust. עבור Go, ראה curl ל-Go. להלן דוגמאות C מעשיות עם ניהול זיכרון תקין.

איך להעתיק curl מהדפדפן שלך

  1. 1

    פתח את DevTools

    לחץ על F12 או על Ctrl+Shift+I כדי לפתוח את כלי המפתחים של הדפדפן.

  2. 2

    עבור ללשונית Network

    לחץ על לשונית ה-Network ובצע את הפעולה שמפעילה את בקשת ה-HTTP.

  3. 3

    העתק כ-cURL

    לחץ קליק ימני על הבקשה ← CopyCopy 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.

קישורים שימושיים

מדריכי curl

המרת curl לשפות אחרות