تحويل أمر cURL إلى Python requests
مناسبة لتحويل أمثلة API أو طلبات منسوخة من المتصفح إلى سكربتات Python وأدوات أتمتة.
جارٍ تحميل الأداة…
المعالجة والخصوصية: تُحسب النتيجة داخل متصفحك ولا تُرسل بياناتك إلى أي خادم.
طريقة الاستخدام
- أدخل أمر curl.
- تظهر النتيجة فورًا وتتحدّث مع كل تعديل.
- انسخ النتيجة، أو انسخ رابطًا يحفظ القيم نفسها لمشاركتها.
طريقة الحساب
يقسم الأمر كما يفعل 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.
