تحويل أوامر curl إلى كود Python - توليد كود Python requests جاهز للاستخدام لطلبات API
# Python requests code will appear here # Example: import requests url = "https://api.example.com/data" payload = {"name": "test"} headers = { "Content-Type": "application/json" } response = requests.post(url, json=payload, headers=headers) print(response.status_code) print(response.text)
فيما يلي بعض أوامر curl الشائعة التي يمكنك تحويلها إلى كود Python:
curl https://api.example.com/users
curl -X POST -H "Content-Type: application/json" -d '{"name":"John","email":"[email protected]"}' https://api.example.com/users
curl -X PUT -H "Authorization: Bearer token123" -d '{"status":"active"}' https://api.example.com/users/1
curl -X DELETE https://api.example.com/users/1
curl -H "X-API-Key: abc123" -H "Accept: application/json" https://api.example.com/data
مكتبة requests في Python هي طريقة قوية وأنيقة لإجراء طلبات HTTP. فيما يلي بعض أنماط Python requests الشائعة:
import requests url = "https://api.example.com/upload" files = {'file': open('document.pdf', 'rb')} headers = {"Authorization": "Bearer YOUR_TOKEN_HERE"} response = requests.post(url, files=files, headers=headers) print(response.json())
import requests from requests.exceptions import RequestException url = "https://api.example.com/data" try: response = requests.get(url, timeout=5) response.raise_for_status() # Raises exception for 4XX/5XX responses data = response.json() print(data) except RequestException as e: print(f"Error making request: {e}")
انسخ أمر curl الخاص بك → الصقه في مربع الإدخال → احصل على كود Python requests المحول
يدعم محولنا المتقدم أوامر curl المعقدة ويترجمها إلى كود Python نظيف وفعال وجاهز للإنتاج باستخدام مكتبة requests. مثالي لتطوير API واختبارها وتكاملها.
تتعامل أداتنا مع خيارات curl الشائعة هذه وتحولها إلى كود Python requests مناسب:
ج: كود Python requests المولد متوافق تماماً مع Python 3.x (3.6 وما فوق). بالنسبة لـ Python 2.x، قد تكون هناك حاجة لتعديلات طفيفة، على الرغم من أننا نوصي باستخدام Python 3 للحصول على أمان وميزات أفضل.
ج: الكود الأساسي المولد لا يتضمن معالجة شاملة للأخطاء. بالنسبة لكود الإنتاج، يجب عليك إضافة كتل try/except للتعامل مع الاستثناءات المحتملة مثل requests.exceptions.RequestException.
ج: تجعل مكتبة requests من السهل معالجة الاستجابات. استخدم response.json() للاستجابات بتنسيق JSON، أو response.text للمحتوى النصي، أو response.content للبيانات الثنائية.
ج: نعم، تحتاج إلى تثبيت مكتبة requests إذا لم تكن لديك بالفعل. يمكنك تثبيتها باستخدام pip: pip install requests
ج: لتحميلات الملفات في Python، ستحتاج إلى استخدام معلمة files في طريقة requests.post(). يتعامل محولنا مع أوامر curl التي تحتوي على خيارات -F
أو --form
ويولد كود Python المناسب باستخدام مكتبة requests.
ج: تجعل مكتبة requests في Python التعامل مع ملفات تعريف الارتباط سهلاً باستخدام كائن Session. عندما تقوم بتحويل أوامر curl التي تتضمن التعامل مع ملفات تعريف الارتباط (باستخدام -b
أو --cookie
)، تقوم أداتنا بتوليد كود Python يدير ملفات تعريف الارتباط بشكل صحيح باستخدام requests.Session().
ج: بينما يعتبر curl ممتازاً لاختبار API السريع في سطر الأوامر، توفر Python requests نهجاً برمجياً يتكامل مع تطبيقات Python الخاصة بك. يساعد تحويل curl إلى Python في سد الفجوة بين الاختبار والتنفيذ في تطوير Python.
فهم أوامر curl ضروري لاختبار API الفعال مع Python. إليك مرجعاً سريعاً لخيارات curl الشائعة التي يدعمها محولنا:
curl [options] [URL]
-X, --request METHOD
: Specify request method (GET, POST, PUT, DELETE, etc.)-H, --header LINE
: Add header to the request-d, --data DATA
: Send data in POST request-F, --form CONTENT
: Submit form data-u, --user USER:PASSWORD
: Server user and password-k, --insecure
: Allow insecure server connections-I, --head
: Show document info only-v, --verbose
: Make the operation more verbose-s, --silent
: Silent mode--connect-timeout SECONDS
: Maximum time for connectionيتعامل محول Python لدينا مع أوامر curl المعقدة بما في ذلك الرؤوس المتعددة والمصادقة وحمولات البيانات والخيارات المختلفة. ما عليك سوى لصق أمر curl الخاص بك والحصول على كود Python نظيف وحديث باستخدام مكتبة requests.
عند العمل مع مكتبة Python requests، اتبع أفضل الممارسات التالية للتفاعلات الفعالة والآمنة مع API:
import requests session = requests.Session() session.headers.update({"Authorization": "Bearer token123"}) # First request response1 = session.get("https://api.example.com/users") # Second request (uses same session) response2 = session.get("https://api.example.com/products") # Close the session when done session.close()
import requests from requests.exceptions import HTTPError, ConnectionError, Timeout try: response = requests.get("https://api.example.com/data", timeout=5) response.raise_for_status() except HTTPError as e: print(f"HTTP error occurred: {e}") except ConnectionError as e: print(f"Connection error occurred: {e}") except Timeout as e: print(f"Timeout error occurred: {e}") except Exception as e: print(f"An error occurred: {e}")
import requests import json response = requests.get("https://api.example.com/data") try: data = response.json() except json.JSONDecodeError: print("Response was not valid JSON") data = {}