تحويل أمر cURL إلى Python requests

مناسبة لتحويل أمثلة API أو طلبات منسوخة من المتصفح إلى سكربتات Python وأدوات أتمتة.

جارٍ تحميل الأداة…

المعالجة والخصوصية: تُحسب النتيجة داخل متصفحك ولا تُرسل بياناتك إلى أي خادم.

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

  1. أدخل أمر curl.
  2. تظهر النتيجة فورًا وتتحدّث مع كل تعديل.
  3. انسخ النتيجة، أو انسخ رابطًا يحفظ القيم نفسها لمشاركتها.

طريقة الحساب

يقسم الأمر كما يفعل bash وتقرأ الخيارات -X و -H و -d و --data-raw و --data-urlencode و --json و -F و -u و -b و -G و -I و -k. الجسم يرسل نصا كما هو عبر data=، و -F يصبح files= بقيم (None, value)، و -u يصبح auth=، و -k يصبح verify=False. الجسم الذي فيه أحرف غير لاتينية يرمز UTF-8 كما يرسله curl.

مثال

النتيجة: كود Python: import requests headers = { 'Content-Type': 'application/json', 'Authorization': 'Bearer TOKEN', } data = '{"product":"oud","qty":2}' response = requests.post('https://api.example.com/v1/orders', headers=headers, data=data)، طريقة الطلب: POST، ملاحظات: لا توجد ملاحظات.

curl -X POST 'https://api.example.com/v1/orders' \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer TOKEN' \
  -d '{"product":"oud","qty":2}'
import requests

headers = {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer TOKEN',
}

data = '{"product":"oud","qty":2}'

response = requests.post('https://api.example.com/v1/orders', headers=headers, data=data)

الحدود والملاحظات

  • قراءة الملفات @file والمتغيرات $VAR وصيغة cmd في Windows غير مدعومة.
  • requests يتبع التحويلات في GET و POST افتراضيا، و curl لا يتبعها إلا مع -L.

أسئلة شائعة عن هذه الأداة

لماذا يرسل الجسم عبر data= وليس json=؟

حتى تصل البايتات كما كتبتها في curl تماما، وتبقى ترويسة Content-Type كما في الأمر الأصلي.

لماذا أضيف .encode('utf-8')؟

لأن requests يرمز النص بترميز latin-1 ويفشل مع العربية، بينما يرسل curl النص بترميز UTF-8.

هل أحتاج تثبيت شيء؟

تحتاج مكتبة requests فقط، وتثبت بالأمر pip install requests.