محوّل أوامر cURL إلى كود Python

ألصق أمر curl واحداً من الطرفية أو من دليل أو من قائمة النسخ في المتصفح. تحصل على كود Python يرسل الطلب نفسه بمكتبة requests، وقائمة بما صار إليه كل خيار.

مجانية تعمل داخل متصفحك آخر مراجعة: الثلاثاء، 30 جمادى الأولى 1448 بعد الهجرة

أمر واحد. تُقرأ علامات التنصيص والأسطر المكتوبة بالشرطة المائلة العكسية كما تقرؤها الصدفة. لا تلصق كلمة مرور أو رمزاً حياً تريد إبقاءه سرياً.

النتيجة

كود Python — انسخه إلى سكربت. يحتاج إلى تثبيت مكتبة requests.
كود Python
كود JavaScript باستعمال fetch

ما الذي فعلته الترجمة

تعمل هذه الأداة داخل متصفحك. ما تكتبه فيها لا يُرسل إلينا.

طريقة الاستخدام

  1. ألصق أمر curl واحداً في أمر curl. أبقِ علامات التنصيص حول القيم التي فيها مسافات.
  2. اقرأ ما الذي فعلته الترجمة لتتحقق من كل خيار: الطريقة وسلسلة الاستعلام والجسم والترويسات.
  3. انسخ كود Python إلى سكربتك بعد تثبيت مكتبة requests، أو كود JavaScript باستعمال fetch إلى صفحة.
  4. إذا ظهرت ملاحظة أو خطأ، فأصلح الأمر أولاً، ثم انسخ الكود من جديد.

أي خيارات curl تقرؤها الأداة

تقرأ الأداة الخيارات التي تستعملها معظم الطلبات. وكل خيار يغيّر استدعاء Python بطريقة معروفة، وأي خيار آخر يوقف التحويل برسالة، فلا يُخمَّن شيء.

  • -X و--request تضبطان الطريقة كما كُتبت. ويقول دليل curl إنهما تغيّران الكلمة المرسلة فقط.
  • -H و--header تضيفان ترويسات. فالسطر مثل X-Flag; يرسل قيمة فارغة، و-H مع قيمة فارغة بعد النقطتين يزيل ترويسة.
  • -d و--data و--data-raw و--data-binary تضبط الجسم. تُدمج قيم -d المتعددة بعلامة &. ومع -G تصبح سلسلة استعلام بدلاً من ذلك.
  • -G و--get، و-I و--head، و-L و--location تغيّر الطريقة أو معالجة التحويلات.
  • -u و--user، و-A و--user-agent، و-b و--cookie تضبط مجموعة المصادقة، وترويسة User-Agent، وترويسة Cookie.
  • --json يرسل القيمة جسماً ويضبط ترويسات JSON، وتستطيع ترويسة -H أن تتجاوزها.

كيف يُقرأ الأمر

يُقسم النص إلى كلمات كما تقسمها صدفة POSIX. تحتفظ علامات التنصيص المفردة بكل حرف. وداخل علامات التنصيص المزدوجة لا تهرب الشرطة المائلة العكسية إلا الرموز $ والعلامة الخلفية وعلامة التنصيص المزدوجة والشرطة المائلة العكسية والسطر الجديد. وتعني الشرطة المائلة العكسية في آخر السطر أنه متصل بالسطر التالي. ولا تُنفَّذ توسعات الصدفة مثل $HOME، فتُذكر هذه القيم بوصفها أخطاء.

ما لا تفحصه الأداة

  • لا ترسل الأداة الطلب، فلا تستطيع أن تقول هل يقبله الخادم.
  • يطبق المتصفح قواعد المصدر المختلف على fetch. فقد يُحجب طلب إلى موقع آخر هناك، حتى إذا عمل الأمر نفسه في الطرفية. والأداة لا تختبر ذلك.
  • لا تفتح الأداة الملفات المسماة بالرمز @، ولا تقرأ ملفات تعريف الارتباط.
  • تكتب Python فقط. ويستعمل الكود مكتبة requests، وتُثبَّت منفصلة.

مثال محلول: طلب PUT بجسم JSON

يرسل الأمر طلب PUT إلى عنصر واحد بجسم JSON. تأتي الطريقة من -X، والترويسة من -H، والجسم من -d. ولاستدعاء Python الأجزاء الثلاثة نفسها، وتذكر قائمة الخطوات أي خيار أعطى أي قيمة.

خيار curl وسيط Python القيمة في الكود
-X PUT method 'PUT'
-H 'Content-Type: application/json' headers 'Content-Type': 'application/json'
-d '{"name": "Ada"}' data '{"name": "Ada"}'

الأسئلة الشائعة

لماذا يستعمل الكود requests وليس مكتبة أخرى؟

requests هي مكتبة Python التي تحوّل إليها الأداة، ودالة الطلب فيها تأخذ الطريقة والعنوان والترويسات والبيانات والمصادقة في استدعاء واحد. ويعمل الاستدعاء نفسه مع كل طريقة يذكرها الأمر.

لماذا يُرسل طلبي بطريقة POST وأنا لم أكتب -X؟

يقول دليل curl إن -d يستعمل POST، وإن --json يرسل POST أيضاً. اكتب -X مع الطريقة التي تريدها، مثل -X PUT، لتغيير الكلمة المرسلة.

ماذا يفعل -G في التحويل؟

ينقل البيانات من -d إلى العنوان كسلسلة استعلام، ويجعل الطلب GET كما يصف الدليل. فيحمل استدعاء Python العنوان الكامل ولا جسم له.

هل تُرسل كلمات المرور في أمري إلى مكان ما؟

لا. يُقرأ الأمر داخل متصفحك، ولا يُخزَّن شيء ولا يُرسل إلينا. ومع ذلك استعمل كلمة مرور أو رمزاً للتجربة فقط في صفحة لا تتحكم فيها.

لماذا تذكر النتيجة عمليات التحويل بين العناوين؟

يتبع curl عمليات التحويل بين العناوين فقط مع -L. ويتبعها requests افتراضياً لكل الطرق، وكذلك fetch، لذلك تخبرك الملاحظة كيف تطابق استدعاء curl الذي لا يحتوي على -L.

هل تستطيع الأداة قراءة بيانات من ملف يُسمى بالرمز @؟

لا. لا تفتح الأداة الملفات، فتُذكر قيمة @ بوصفها خطأً. ألصق البيانات نفسها في الأمر.

المصادر

آخر مراجعة للأرقام والنص: الثلاثاء، 30 جمادى الأولى 1448 بعد الهجرة.

نستخدم ملفات تعريف ارتباط ضرورية لتشغيل الموقع. وبموافقتك، تستخدم Google أيضاً ملفات تعريف ارتباط للإعلانات، لعرض إعلانات مخصصة. وإذا رفضتها، فستظل ترى إعلانات، لكنها لن تكون مخصصة لك.