tigtools

ממיר cURL לקוד

הדביקו פקודת curl, למשל כזו שהועתקה מכלי הפיתוח של הדפדפן או ממסמך API, וקבלו קוד שקול בשפה שלך.

פועל בדפדפן שלך ללא הרשמה

שפה

איך להשתמש בו

  1. העתיקו בקשה כ-curl, למשל מכלי הפיתוח של הדפדפן (לשונית Network, לחיצה ימנית, Copy as cURL) או מתיעוד API.
  2. הדביקו אותו בתיבה. המשכי שורה עם \ תקינים.
  3. בחרו JavaScript fetch, Node.js axios, Python requests או PHP cURL.
  4. קראו הערות מתחת לקוד, ולאחר מכן העתיקו או הורידו את התוצאה.

איך זה עובד

הממיר מפצל תחילה את הפקודה למילים כפי שעושה מעטפת POSIX: מירכאות בודדות, מירכאות כפולות עם רצפי בריחה של לוכסן הפוך, מחרוזות $'…' והמשכי שורה עם לוכסן הפוך מזוהים. משתני מעטפת כמו $TOKEN אינם מורחבים; הם נשארים כטקסט.

אפשרויות curl נתמכות: כתובת ה-URL (או --url), -X/--request, -H/--header, -d/--data, --data-ascii, --data-raw, --data-binary, --data-urlencode, --json, -F/--form ו---form-string (שדות והעלאות @file עם ;type=), -u/--user, -G/--get, -I/--head, -A/--user-agent, -e/--referer, -b/--cookie (מחרוזות cookie), -L/--location ו---compressed. ניתן לשלב אפשרויות קצרות, כמו -sSL, ולצרף ערכים, כמו -XPOST.

הכללים עוקבים אחרי curl: כמה ערכי -d מחוברים עם &; data הופך את הבקשה ל-POST אלא אם כן -X או -G מורים אחרת; -G מוסיף את הנתונים לכתובת ה-URL כמחרוזת שאילתה; --json מגדיר את כותרות ה-Content-Type ו-Accept ל-application/json. כשהתוכן הוא JSON וכותרת ה-Content-Type מציינת זאת, הקוד שולח אובייקט אמיתי (json= ב-Python, מערך עם json_encode ב-PHP) במקום מחרוזת עם תווים ממוסכים. בטפסי multipart, כותרת ה-Content-Type נשארת באחריות הספרייה כך שה-boundary יהיה נכון.

-k/--insecure מתעלמים בכוונה, והערה מסבירה זאת. אפשרויות שמשנות רק את הפלט של curl עצמו (-s, -S, -v, -i, -o, --fail ודומות) מתעלמים מהן עם הערה. כל אפשרות אחרת מייצרת שגיאה ברורה המציינת את שמה, במקום קוד שעושה משהו שונה בשקט. נותר הבדל אחד: curl עוקב אחרי הפניות רק עם -L, בעוד fetch, axios ו-requests עוקבים אחריהן כברירת מחדל; קוד ה-PHP עוקב אחריהן רק כשניתנה -L.

הכלי רק כותב קוד. הוא לעולם אינו שולח את הבקשה, כך שאסימונים וסיסמאות בפקודה אינם בשימוש בשום מקום.

דוגמאות

שחזור בקשת דפדפן ב-Python

העתק קריאת API כושלת מהלשונית Network ב-Chrome כ-cURL והמר אותה ל-Python requests. הכותרות, העוגיות וגוף ה-JSON מועברים, כך שתוכל לשחזר את הבאג בסקריפט.

שימוש בתיעוד API ב-Node.js

תיעוד API מציג “curl -u key: https://api.example.com/v1/charges -d amount=2000 -d currency=eur”. גרסת ה-axios משתמשת ב-auth: { username: "key", password: "" } וגוף מקודד כטופס.

העלאת קובץ ב-PHP

הפקודה “curl -F 'file=@invoice.pdf;type=application/pdf' -F 'note=March' https://x.io/upload” הופכת ל-CURLOPT_POSTFIELDS עם new CURLFile('invoice.pdf', 'application/pdf') ושדה ה-note.

שאלות נפוצות

האם הכלי הזה שולח את הבקשה שלי?

לא. הכלי רק מנתח את טקסט הפקודה ומייצר קוד. לא נשלחת שום בקשה, כך שמפתחות API או עוגיות בפקודה אינם בשימוש ואינם נשמרים.

מדוע -k/--insecure אינו מומר?

ביטול בדיקות התעודה חושף את החיבור ליירוט. הקוד שנוצר משאיר את הבדיקות פעילות; אם אישור השרת אינו מהימן, תקן את האישור או את מאגר האישורים המהימנים במקום זאת.

מדוע אני מקבל “האפשרות אינה נתמכת”?

הממיר מתרגם רק אפשרויות שאת משמעותן הוא יכול לשחזר במדויק. פרוקסי, אישורי לקוח, קבצי cookie jar ואפשרויות דומות נדחות, כדי שלא תקבל קוד שמתנהג אחרת מ-curl.

האם זה עובד עם פקודות Windows cmd?

פקודות שמועתקות כ-“cURL (bash)” עובדות הכי טוב. Windows cmd משתמש ב-^ למעברי שורה ובמירכאות שונות; ^ בסופי שורות מתקבל, אך תווי escape אחרים של cmd עשויים שלא להתקבל.

פרטיות

הפקודה מנותחת רק בדפדפן שלך ולא נשלחת שום בקשה. דבר לא מועלה, נשמר או נכלל בניתוח נתונים.