كيفية استخدام مكتبة طلبات Python لـ HTTP
مكتبة requests
هي وحدة Python شائعة تبسط عملية تقديم طلبات HTTP. فهي تختصر التعقيدات المرتبطة بالتعامل مع الطلبات والاستجابات، مما يجعل التفاعل مع خدمات الويب وواجهات برمجة التطبيقات أسهل. في هذه المقالة، سنستكشف أساسيات استخدام مكتبة requests
، بما في ذلك كيفية إرسال أنواع مختلفة من طلبات HTTP والتعامل مع الاستجابات.
تثبيت مكتبة الطلبات
قبل أن تتمكن من استخدام مكتبة requests
، ستحتاج إلى تثبيتها. يمكنك تثبيتها باستخدام pip
، مدير الحزم الخاص بـ Python. قم بتشغيل الأمر التالي في محطتك الطرفية:
pip install requests
إنشاء طلب GET بسيط
إن أبسط طلب HTTP هو طلب GET، والذي يسترد البيانات من الخادم. وإليك كيفية استخدام مكتبة requests
لتقديم طلب GET:
import requests
response = requests.get('https://api.github.com')
print(response.status_code)
print(response.json())
في هذا المثال، نرسل طلب GET إلى واجهة برمجة تطبيقات GitHub ونطبع رمز حالة HTTP ومحتوى الاستجابة بتنسيق JSON.
إرسال طلبات POST
تُستخدم طلبات POST لإرسال البيانات إلى الخادم، مثل عمليات إرسال النماذج. وإليك كيفية إرسال طلب POST باستخدام مكتبة requests
:
import requests
data = {'key1': 'value1', 'key2': 'value2'}
response = requests.post('https://httpbin.org/post', data=data)
print(response.status_code)
print(response.json())
في هذا المثال، نرسل طلب POST مع بعض بيانات النموذج إلى خدمة الاختبار httpbin.org ونطبع رمز حالة الاستجابة والمحتوى.
معالجة معلمات الاستعلام
في بعض الأحيان، قد تحتاج إلى تضمين معلمات الاستعلام في طلباتك. تسهل مكتبة requests
هذا الأمر من خلال السماح لك بتمرير المعلمات كقاموس:
import requests
params = {'search': 'python', 'page': 1}
response = requests.get('https://httpbin.org/get', params=params)
print(response.status_code)
print(response.url)
في هذا المثال، نقوم بتضمين معلمات الاستعلام في طلب GET وطباعة عنوان URL النهائي مع المعلمات المضمنة.
العمل مع الرؤوس
قد تحتاج إلى تضمين رؤوس مخصصة في طلباتك، مثل المصادقة أو تحديد أنواع المحتوى. إليك كيفية إضافة رؤوس إلى طلباتك:
import requests
headers = {'Authorization': 'Bearer YOUR_TOKEN'}
response = requests.get('https://api.github.com/user', headers=headers)
print(response.status_code)
print(response.json())
في هذا المثال، نقوم بتضمين رأس تفويض في الطلب المقدم إلى واجهة برمجة تطبيقات GitHub وطباعة رمز الحالة ومحتوى الاستجابة.
معالجة مهلة الانتظار والاستثناءات
من المهم التعامل مع المشكلات المحتملة مثل مهلة الشبكة والاستثناءات الأخرى. تتيح لك مكتبة requests
تحديد مهلة زمنية والتقاط الاستثناءات:
import requests
from requests.exceptions import RequestException
try:
response = requests.get('https://httpbin.org/delay/5', timeout=3)
response.raise_for_status()
print(response.status_code)
print(response.text)
except RequestException as e:
print(f'An error occurred: {e}')
في هذا المثال، قمنا بتعيين مهلة زمنية للطلب والتقاط أي استثناءات تحدث، وطباعة رسالة خطأ إذا حدث خطأ ما.
خاتمة
مكتبة requests
هي أداة قوية وسهلة الاستخدام لإنشاء طلبات HTTP في Python. سواء كنت تقوم باسترداد البيانات من واجهات برمجة التطبيقات أو إرسال نماذج أو التعامل مع رؤوس مخصصة، فإن مكتبة requests
تجعل من السهل تنفيذ هذه المهام ببضعة أسطر فقط من التعليمات البرمجية. من خلال إتقان الأساسيات التي تمت تغطيتها في هذه المقالة، ستكون مجهزًا جيدًا للتفاعل مع خدمات الويب وواجهات برمجة التطبيقات في مشاريع Python الخاصة بك.