إرسال 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جرّب بنفسك
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس التعامل مع الشبكات عبر الطرفية
4هل يمكن الوصول إليه؟
ICMP و pingقراءة مخرجات pingعندما يكذب pingمرفوض أم انتهت المهلة؟مراجعة: قابلية الوصول7إرسال البيانات
POST مع -dما الذي يرسله -d فعليًاترميز النماذجإرسال JSONPUT و DELETEمراجعة: كتابة البياناتتدرّب بنفسك: Playground لـ Terminal