שליחת 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 מלא במירכאות כפולות, לכן עטוף את כל הגוף במירכאות יחידות, והמעטפת תניח לו.
אתגר
מומחהשלח JSON אמיתי והוכח שהוא סומן כראוי.
- הפעל את מאזין הלכידה בפורט 9125
- שלח POST עם הגוף
{"name":"ada"}אל/users, תוך הצהרה שהוא JSON - הדפס את שורת Content-Type מתוך
req.txt
הפלט הצפוי:
Content-Type: application/jsonנסו בעצמכם
השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה עבודה עם רשתות דרך הטרמינל
תרגלו בעצמכם: Terminal אונליין