التعامل مع طلبات HTTP في بايثون باستخدام مكتبة requests
مع مكتبة requests
، يمكنك إرسال طلبات HTTP مثل GET وPOST للتفاعل مع خدمات الويب وواجهات برمجة التطبيقات (APIs) بسهولة.
إرسال طلبات GET
يُستخدم طلب GET لطلب بيانات من مورد محدد. إليك كيفية إرسال طلب GET باستخدام مكتبة requests
:
import requests
response = requests.get('https://api.github.com')
print(response.status_code) # الإخراج: 200
print(response.text) # الإخراج: محتوى الاستجابة كنص
response.status_code
: يعيد رمز حالة HTTP للاستجابة (على سبيل المثال، 200 يعني نجاح العملية).
response.text
: يعيد محتوى الاستجابة كنص.
إرسال طلبات POST
يُستخدم طلب POST لإرسال بيانات إلى الخادم لإنشاء أو تحديث مورد. إليك كيفية إرسال طلب POST مع بعض البيانات:
url = 'https://jsonplaceholder.typicode.com/posts'
data = {'title': 'foo', 'body': 'bar', 'userId': 1}
response = requests.post(url, json=data)
print(response.status_code) # الإخراج: 201
print(response.json()) # الإخراج: جسم الاستجابة بعد تحليله كـ JSON
json=data
: يحول تلقائيًا بيانات القاموس إلى سلسلة JSON لاستخدامها في جسم الطلب.
التعامل مع معاملات الاستعلام
يمكنك تضمين معاملات الاستعلام في طلب GET باستخدام معامل params
:
url = 'https://jsonplaceholder.typicode.com/posts'
params = {'userId': 1}
response = requests.get(url, params=params)
print(response.url) # الإخراج: https://jsonplaceholder.typicode.com/posts?userId=1
print(response.json()) # الإخراج: بيانات JSON المفلترة بواسطة userId
التمارين
التمرين 1: اكتب برنامجًا يرسل طلب GET إلى “https://jsonplaceholder.typicode.com/users” ويطبع أسماء وعناوين البريد الإلكتروني لجميع المستخدمين.
import requests
response = requests.get('https://jsonplaceholder.typicode.com/users')
users = response.json()
for user in users:
print(f"Name: {user['name']}, Email: {user['email']}")
التمرين 2: اكتب برنامجًا يرسل طلب POST إلى “https://jsonplaceholder.typicode.com/posts” لإنشاء منشور جديد مع عنوان ومحتوى، ويطبع الاستجابة.
import requests
url = 'https://jsonplaceholder.typicode.com/posts'
data = {'title': 'New Post', 'body': 'This is a new post.', 'userId': 1}
response = requests.post(url, json=data)
print(response.status_code) # الإخراج: 201
print(response.json())
التمرين 3: عدل التمرين الأول لإضافة معالجة الأخطاء التي تطبع رسالة خطأ إذا فشل الطلب (مثلًا، إذا لم يكن رمز الحالة 200).
import requests
try:
response = requests.get('https://jsonplaceholder.typicode.com/users')
response.raise_for_status() # Raises an HTTPError if the status is not 200
users = response.json()
for user in users:
print(f"Name: {user['name']}, Email: {user['email']}")
except requests.exceptions.RequestException as e:
print(f"Error: {e}")
رائع! لقد تعلمت كيفية استخدام مكتبة requests
للتفاعل مع خدمات الويب من خلال إرسال طلبات HTTP والتعامل مع الاستجابات. هذه المهارة أساسية للعمل مع واجهات برمجة تطبيقات الويب ودمج تطبيقاتك مع الخدمات الخارجية.
اترك تعليقاً