שליחת JSON
שיעור 35 מתוך 47 בקורס עבודה עם רשתות דרך הטרמינל של Coddy.
רוב ממשקי ה-API כיום מצפים ל-JSON, ולא לקידוד של טופס. שני דברים צריכים להשתנות, ושכחה של הדבר השני היא הטעות הנפוצה ביותר בתחום הזה.
curl -s -H 'Content-Type: application/json' \
-d '{"name":"ada"}' http://127.0.0.1:9125/usersראשית, גוף הבקשה הופך ל-JSON. שנית, עליך להצהיר על כך באמצעות כותרת Content-Type, כי אחרת curl עדיין מסמן את גוף הבקשה כנתוני טופס. לאחר מכן השרת מנסה לנתח את ה-JSON כזוגות key=value ודוחה אותו, בדרך כלל עם שגיאת 400.
לכן, כש-API אומר שה-JSON שלך לא תקין והוא נראה לך תקין לחלוטין, בדוק את הכותרת לפני שאתה בודק את ה-JSON.
שים לב גם למירכאות. JSON מלא במירכאות כפולות, לכן תחום את כל גוף הבקשה במירכאות יחידות, וה-shell יניח לו.
אתגר
מומחהשלח JSON אמיתי והוכח שהוא סומן כראוי.
- הפעל את מאזין הלכידה בפורט 9125
- שלח POST עם הגוף
{"name":"ada"}אל/users, תוך הצהרה שהוא JSON - הדפס את שורת Content-Type מתוך
req.txt
הפלט הצפוי:
Content-Type: application/jsonנסו בעצמכם
השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה עבודה עם רשתות דרך הטרמינל
תרגלו בעצמכם: Terminal אונליין