כלי שורת הפקודה curl הוא עוזר מושלם כשאתה עובד עם קוד HTTP. בדוק בקשות, חקור פורמטים של נתונים ועוד!
פרוטוקול העברת ההיפרטקסט (HTTP) הוא עמוד השדרה של התקשורת דרך האינטרנט, המאפשר העברת נתונים בין שרתים ולקוחות. עם זאת, אינטראקציה עם נקודות קצה HTTP יכולה להיות מאתגרת, במיוחד למתחילים.
למרבה המזל, curl, כלי שורת פקודה, מספק דרך קלה ויעילה לשלוח ולקבל בקשות HTTP. כאן תלמדו כיצד להשתמש ב-curl כדי לבצע בקשות POST, GET, DELETE ו-PUT בסיסיות של HTTP.
התקנת תלתל
כברירת מחדל, curl מותקן במערכות הפעלה עיקריות כולל macOS, Linux ו-Unix.
אתה יכול לאשר שהתקנת את curl על ידי הפעלת הפקודה למטה:
סִלְסוּל
הפקודה שלמעלה צריכה להדפיס "נסה 'curl --help' או 'curl --manual' למידע נוסף" בטרמינל שלך.
אם curl לא מותקן במערכת ההפעלה שלך, אתה יכול להוריד ולהתקין אותו דף ההורדות של curl.
ביצוע בקשת HTTP GET
בקשת HTTP GET היא שיטה לבקשת נתונים שרת אינטרנט. אתה יכול להשתמש בבקשות אלה כדי לאחזר משאב ספציפי, כגון דף אינטרנט, תמונה או סרטון.
אתה יכול להגיש בקשת GET עם curl בפורמט שלהלן:
תלתל -X GET
החלף עם כתובת האתר של המשאב שברצונך להביא.
לדוגמה:
תלתל -X GET https://example.com/todos/1
הפעלת הפקודה למעלה מבצעת בקשת HTTP GET לכתובת ה-URL https://example.com/todos/1. ה -X GET האפשרות מציינת ששיטת ה-HTTP היא GET. כאשר הפקודה פועלת, curl שולח בקשת GET לשרת שצוין בכתובת ה-URL ומחכה לתגובת השרת.
אם השרת מגיב עם קוד סטטוס מוצלח, סִלְסוּל מציג את גוף התגובה בטרמינל, שבמקרה זה יהיו נתוני JSON לגבי פריט מטלה עם מזהה 1.
לחלופין, אתה יכול להגיש בקשת GET מבלי לציין את -איקס סמן כי כברירת מחדל, curl מבצע בקשת GET כאשר אינך מציין שיטת בקשה עם ה- -איקס דֶגֶל.
לדוגמה:
סִלְסוּל https://example.com/todos/1
הפעלת הפקודה למעלה תחזיר את אותה תגובה כמו הפקודה הקודמת עם ה-"-X GET"דגל.
ביצוע בקשת HTTP POST
בקשת HTTP POST היא שיטה לשמירת נתונים בשרת אינטרנט. בניגוד לבקשת GET, ששולחת נתונים כחלק מה-URL, בקשת POST שולחת נתונים בגוף ההודעה של הבקשה. זה הופך את בקשות POST לבטוחות יותר עבור העברת מידע רגיש.
אתה יכול להגיש בקשת POST עם curl בפורמט שלהלן:
curl -X POST -d
לדוגמה:
curl -X POST -d 'name=jack' -d '[email protected]' \
https://example.com/users
הפקודה למעלה שולחת בקשת POST אל https://example.com/users עם הנתונים שצוינו על ידי -ד דגל כמטען.
ה -ד דגל מציין את הנתונים שיש לשלוח. במקרה זה, הוא ציין שני פרמטרים של נתונים: שם=ג'ק ו[email protected].
כאשר אתה משתמש ב -ד לסמן יותר מפעם אחת בפקודה, אתה יכול למזג את השדות באמצעות הסמל &.
לדוגמה:
curl -d "name=jack&[email protected]" https://example.com/api/users
חלק מהנתונים שאתה עשוי לנסות לשלוח בבקשת POST עשויים להיות קשים להשתלב במחרוזת בודדת בטרמינל שלך. במקרים כאלה, זה עשוי להיות אידיאלי לקרוא ולפרסם את הנתונים מקובץ באמצעות curl.
כדי לשלוח נתונים מקובץ בבקשת POST כמטען עם סלסול, השתמש ב- @ לחתום מיד לאחר ה -ד דגל, ואחריו נתיב הקובץ לקובץ שאתה רוצה ש-curl ישלח בבקשה.
לדוגמה:
curl -X POST -d @users.txt https://example.com/api/users
ציון סוג התוכן
משתמש ב -ד דגל מגדיר אוטומטית את הכותרת Content-Type ל application/x-www-form-urlencoded. עם זאת, אתה יכול לציין באופן ידני את סוג התוכן המתאים לבקשתך באמצעות -ח אוֹ --כּוֹתֶרֶת דגל ואחריו סוג התוכן הרצוי.
לדוגמה:
curl -H "Content-Type: application/json" \
-d '{"name": "ג'ק", "email": "[email protected]"}' \
https://example.com/api/users
בפקודה למעלה, ה -ח הדגל מציין את הכותרת Content-Type כ סוג תוכן: application/json.
אתה יכול להחליף application/json עם כל סוג MIME או סוג תוכן חוקי אחר המתאים לנתונים שאתה שולח בגוף הבקשה. לדוגמה, בעת העלאת נתונים בינאריים, כגון תמונה או קובץ שמע, עליך להגדיר את Content-Type ל- נתונים מרובים/טופס.
זה מאפשר לך לציין את הפורמט הצפוי של הנתונים הנשלחים, דבר שיכול להיות חשוב בעת אינטראקציה עם ממשקי API או שירותי אינטרנט הדורשים סוגי תוכן ספציפיים לעיבוד תקין.
ביצוע בקשת HTTP PUT
בקשת HTTP PUT היא שיטה לעדכון משאב קיים בשרת אינטרנט או יצירת אחד אם המשאב אינו קיים. שיטה זו נבדלת משיטת POST במובן שהיא אימפוטנטית. המשמעות היא שלקריאה לשיטת PUT פעם או מספר פעמים ברציפות יש את אותה השפעה על השרת.
אתה יכול להגיש בקשת PUT עם תלתל בפורמט שלהלן:
curl -X PUT -H "Content-Type: application/json" \
-d '{"name": "ג'ק באואר", "email": "[email protected]"}' \
https://example.com/api/users/4
הפקודה למעלה שולחת בקשת PUT בפורמט JSON לשרת האינטרנט שצוין בכתובת ה-URL למעלה ומעדכנת את המשאב שצוין. אם המשאב שצוין אינו קיים, הוא יצור את המשאב בשרת האינטרנט.
ביצוע בקשת HTTP DELETE
בקשת HTTP DELETE היא שיטה למחיקת משאב שצוין משרת אינטרנט. בדומה לבקשות PUT, בקשות DELETE הן חסרות כוח. שליחת אותה בקשת DELETE מספר פעמים לאותו משאב תפיק את אותה תוצאה בשרת.
אתה יכול לבצע בקשת DELETE עם curl על ידי הפעלת הפקודה למטה:
תלתל -X מחק http://example.com/api/users/3
הפקודה למעלה שולחת בקשת DELETE לשרת האינטרנט שצוין בכתובת ה-URL למעלה ומוחקת את המשאב שצוין.
מחיקת בקשות הסר לצמיתות את המשאב שצוין מהשרת. לפיכך, שרת אינטרנט התומך ב-DELETE דורש בדרך כלל סוג של אימות או הרשאה לפני שתוכל להגיש בקשה זו.
כך תבצע בקשת מחיקה עם כותרת הרשאה:
curl -X DELETE -H "Authorization: Bearer my_access_token" \
https://example.com/api/users/3
הפקודה שלמעלה מספקת את מידע האימות בכותרת הבקשה באמצעות שיטת האימות של Bearer עם -ח דֶגֶל. הרשאה: נושא ה-my_access_token הוא ערך הכותרת. אסימון_הגישה_שלי הוא מציין מיקום לערך אסימון הגישה שלך בפועל.
דרכים אחרות שבהן אתה יכול לבצע בקשות HTTP
מלבד סלסול, ישנן מספר דרכים לבצע בקשות HTTP בהתאם להקשר של הבקשה. השיטות הנפוצות ביותר כוללות שימוש בדפדפן אינטרנט כמו Chrome, כלי GUI כמו Postman או לקוח API.
כל אחת מהאפשרויות הללו מגיעה עם היתרונות והפשרות שלה. בסופו של דבר, הבחירה שלך בכלי תהיה תלויה בדרישות המשימה שלך.