اذهب إلى المحتوى
  • 0

استخدام Postman في مشروع Node.js: الفرق بين x-www-form-urlencoded و Raw

محمود سعداوي2

السؤال

السلام عليكم.

ماهو الفرق بين x-www-form-urlencoded و raw عند استعمال postman في مشروع node js

تم التعديل في بواسطة Mustafa Suleiman
تعديل عنوان السؤال
رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 0

عند اختيار raw فإن ما نقوم بكتابته يتم إرساله كما هو بدون أي تعديل إلى السيرفر.

أما في حال اختيار x-www-form-urlencoded فإن البيانات يتم إرسالها بنفس الصيغة التي يتم فيها إرسال بارامترات GET، أي على شكل مفتاح و قيمة.

و بالتالي ما تريد استعماله يعتمد على ما تريد إرساله، مثلاً في حال أردت إرسال json عليك اختيار raw و من ثم اختيار json بدلاً من text في الخيارات أقصى اليمين.

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

وعليكم السلام.

بشكل عام، اختيار استخدام "x-www-form-urlencoded" أو "Raw" يعتمد على طبيعة البيانات التي ترسلها وكيفية توقع الخادم لاستلامها.

  1. x-www-form-urlencoded:
    عندما تقوم بتحديد هذا النوع في Postman، سيتم تنسيق بيانات النموذج التي تقوم بإرسالها بتنسيق مفتاح / قيمة (key-value) ووضعها في جسم الطلب (req.body). على سبيل المثال، عند إرسال معلومات مستخدم مثل اسم المستخدم وكلمة المرور، ستكون البيانات تبدو كالتالي:
    username=john_doe&password=mypassword
    

    وهكذا تتم معالجة البيانات على الخادم بسهولة باستخدام طريقة مثل req.body في Node.js.

  2.  

    Raw:
    عند استخدام ترميز "Raw" في Postman، يمكنك إدخال البيانات المطلوب إرسالها بتنسيق نصي (plain text) أو بتنسيق JSON أو XML أو أي تنسيق آخر مطلوب.ويتم ارسالها الي السيرفر بدون اي تعديل عليها، ولكن عند استخدام هذا الترميز، يجب عليك تحديد نوع المحتوى (Content-Type) الصحيح في رأس الطلب (header) لكي يتم توقع الخادم للتعامل مع بيانات الطلب بالشكل الصحيح.

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

الإختلاف هو في طريقة تحويل البيانات إلى سلسلة، حيث يقوم x-www-form-urlencoded  بتحويل البيانات إلى سلسلة باستخدام رمز URL، بينما يحول raw البيانات إلى سلسلة كما هي.

ونستخدم x-www-form-urlencoded للبيانات التي سيتم إرسالها عبر نموذج ويب، مثلاً لإرسال اسم المستخدم وكلمة المرور إلى خادم، وتحويل تلك البيانات إلى سلسلة، وستبدوا السلسلة الناتجة كالتالي:

username=johndoe&password=secret

ولاحظ أنه يتم ترميز البيانات بتنسيق مفتاح/قيمة وإرسالها في جسم الطلب.

أي لو في إرسال طلب POST لإضافة مستخدم جديد إلى قاعدة البيانات، يمكنك استخدام x-www-form-urlencoded لإرسال البيانات التالية:

البيانات:

  • key: name، value: John Doe
  • key: email، value: johndoe@example.com
  • key: age، value: 30

وفي مشروع Node.js، يجب أن تُعالج طلبات POST هذه الأنواع من البيانات في جسم الطلب، باستخدام إطار عمل مثل Express، ويمكنك قراءة بيانات x-www-form-urlencoded أو raw من جسم الطلب كالتالي:

const express = require('express');
const bodyParser = require('body-parser');

const app = express();

// تمكين معالجة x-www-form-urlencoded
app.use(bodyParser.urlencoded({ extended: false }));

app.post('/api/users', (req, res) => {
  const { name, email, age } = req.body;
  // قم بإجراء الإجراءات اللازمة لإضافة المستخدم إلى قاعدة البيانات هنا
  res.send('تمت إضافة المستخدم بنجاح');
});

app.listen(3000, () => {
  console.log('الخادم يعمل على المنفذ 3000');
});

بينما يستخدم raw عادةً للبيانات التي لا يمكن تحويلها إلى سلسلة باستخدام رمز URL، أي في حال كنت تريد إرسال ملف إلى خادم، فتستطيع استخدام raw لتحويل الملف إلى سلسلة، وستبدوا السلسلة الناتجة كالتالي:

<file content>

أي في حال أننا نريد إرسال بيانات في تنسيق غير مشفر، مثل نص عادي (Plain Text) أو JSON أو XML.

ولنفترض أنك ترغب في إرسال طلب POST لإضافة مستخدم جديد باستخدام تنسيق JSON، هنا نستخدم Raw لإرسال البيانات التالية:

البيانات (JSON):

{
  "name": "John Doe",
  "email": "johndoe@example.com",
  "age": 30
}

وبالمثل يتوجب معالجة طلبات POST لذلك النوع من البيانات في جسم الطلب باستخدام إطار عمل مثل Express، ويمكنك قراءة بيانات x-www-form-urlencoded أو raw من جسم الطلب كالتالي:

const express = require('express');
const bodyParser = require('body-parser');

const app = express();

// تمكين معالجة JSON
app.use(bodyParser.json());

app.post('/api/users', (req, res) => {
  const { name, email, age } = req.body;
  // قم بإجراء الإجراءات اللازمة لإضافة المستخدم إلى قاعدة البيانات هنا
  res.send('تمت إضافة المستخدم بنجاح');
});

app.listen(3000, () => {
  console.log('الخادم يعمل على المنفذ 3000');
});

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

`x-www-form-urlencoded` و `raw` هما نوعان مختلفان من أنواع نموذج البيانات 

`x-www-form-urlencoded` هو نوع البيانات الافتراضي في Postman ويتم استخدامه لإرسال بيانات النموذج باستخدام ترميز URL المشفر. يتم ترميز القيمة النصية لكل بيانات النموذج باستخدام ترميز URL المشفر ويتم فصل القيم باستخدام الرمز '&'، ويتم إرسالها في جسم الطلب HTTP.

`raw` هو نوع بيانات يتيح للمستخدمين إدخال النص الخام (raw text) الذي يتوافق مع نوع MIME المحدد. يمكن استخدام نوع MIME المختلفة مثل `application/json` أو `text/html` أو `text/xml` لإرسال بيانات مختلفة.

يمكن استخدام `x-www-form-urlencoded` و `raw` في نفس التطبيق في بعض الحالات، مثل عندما تحتاج إلى إرسال بيانات النموذج البسيطة باستخدام `x-www-form-urlencoded` وبيانات JSON أو XML معقدة باستخدام `raw` في نفس الوقت.

ومع ذلك، في معظم الحالات، يتم استخدام أحد هذين النوعين فقط، وذلك يعتمد على نوع بيانات النموذج ومعالجتها في تطبيق Node.js. على سبيل المثال، يتم استخدام `x-www-form-urlencoded` لإرسال بيانات النموذج البسيطة مثل الأسماء والقيم النصية، في حين يناسب `raw` استخدامه لإرسال البيانات المعقدة مثل JSON أو XML.

بشكل عام، ينصح باستخدام `x-www-form-urlencoded` في الحالات التي تتطلب إرسال بيانات النموذج البسيطة مثل النصوص والأسماء والقيم الرقمية، بينما ينصح باستخدام `raw` عندما تحتاج إلى إرسال بيانات معقدة مثل JSON أو XML أو بيانات الصور والفيديو.

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

عند استخدام Postman في مشروع Node.js لإرسال طلبات POST، يمكنك اختيار تنسيق بيانات الجسم المُرسلة في الطلب، ومن بين هذه التنسيقات تجد "x-www-form-urlencoded" و "raw". الفرق بينهما يتمثل في كيفية تنسيق وترميز البيانات المرسلة.

x-www-form-urlencoded: يستخدم تنسيق "x-www-form-urlencoded" عندما تريد إرسال البيانات كنص عادي مُرمَز في جسم الطلب. يتم ترميز القيم باستخدام نسق ترميز URL المعروف باسم "Percent-Encoding" حيث يتم تحويل المسافات والأحرف الخاصة والرموز غير الآمنة إلى نسق قابل للإرسال عبر الشبكة.

Raw: يستخدم تنسيق "Raw" عندما تريد إرسال البيانات بصيغة محددة، مثل نص عادي أو JSON أو XML، دون ترميز إضافي. عند استخدام هذا التنسيق، يجب عليك أن تكون على علم بتنسيق البيانات التي تقوم بإرسالها وتحديد المحتوى بناءً على طلب الخادم.

ملحوظة: تتوقف اختيار التنسيق على كيفية استقبال البيانات في خادم Node.js الخاص بك. إذا كنت تستخدم body-parser أو حزمة مشابهة لتحليل بيانات الجسم المرسلة، فمن المهم تحديد التنسيق الصحيح الذي تستخدمه في Postman حتى يتمكن الخادم من فهم البيانات المرسلة بشكل صحيح.

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...