کتابخانه requests در پایتون به شما این امکان را میدهد تا با استفاده از سشنها، ارتباطات HTTP را بهینهسازی کنید. مدیریت سشن در کتابخانه requests میتوانند به شما کمک کنند تا دادههایی را که در چندین درخواست مشترک هستند، حفظ کنید و به این ترتیب کارایی ارتباطات با سرور را افزایش دهید.
سرفصل های مقاله
چرا از سشنها استفاده کنیم؟
- حفظ وضعیت: سشنها میتوانند کوکیها، هدرها و پارامترهای پایه را برای درخواستهای چندگانه حفظ کنند.
- کاهش زمان اتصال: با استفاده از یک سشن، میتوانید از ایجاد ارتباط جدید برای هر درخواست جلوگیری کنید.
- ارتباط در زمینهی خاص: سشنها به شما این امکان را میدهند که به راحتی در یک زمینه خاص مانند احراز هویت کار کنید.
1. ایجاد یک سشن
برای ایجاد یک سشن در requests، میتوانید از requests.Session() استفاده کنید:
import requests
# ایجاد یک سشن
session = requests.Session()
2. اضافه کردن هدرها به سشن
میتوانید هدرهای پیشفرضی را برای تمامی درخواستهای انجام شده با استفاده از این سشن تنظیم کنید:
session.headers.update({
'User-Agent': 'MyApp/1.',
'Authorization': 'Bearer YOUR_TOKEN'
})
3. ارسال درخواست با سشن
پس از تنظیم سشن، میتوانید درخواستهای GET و POST را به سادگی ارسال کنید:
# ارسال درخواست GET
response = session.get('https://jsonplaceholder.typicode.com/posts')
print(response.json())
# ارسال درخواست POST
data = {'title': 'foo', 'body': 'bar', 'userId': 1}
response = session.post('https://jsonplaceholder.typicode.com/posts', json=data)
print(response.json())
آموزش مقدماتی پایتون (رایگان)
4. مدیریت کوکیها
استفاده از سشن به شما این امکان را میدهد که کوکیها را در درخواستهای خود مدیریت کنید:
# مشاهده کوکیها
cookies = session.cookies
print(cookies)
# اضافه کردن کوکی جدید
session.cookies.set('my_cookie', 'my_value')
5. بستن سشن
پس از پایان کار با سشن، مهم است که آن را ببندید تا منابع آزاد شوند:
session.close()
آموزش کتابخانه ریکوئست (رایگان)
6. مثال کامل
در زیر یک مثال کامل از استفاده از سشنها در requests آورده شده است:
import requests
# ایجاد یک سشن
session = requests.Session()
# تنظیم هدرهای پیشفرض
session.headers.update({'User-Agent': 'MyApp/1.', 'Authorization': 'Bearer YOUR_TOKEN'})
# ارسال یک درخواست GET
response = session.get('https://jsonplaceholder.typicode.com/posts')
print("POSTS:", response.json())
# ارسال یک درخواست POST
data = {'title': 'foo', 'body': 'bar', 'userId': 1}
response = session.post('https://jsonplaceholder.typicode.com/posts', json=data)
print("نوشته جدید:", response.json())
# بستن سشن
session.close()
نتیجه گیری
مدیریت سشن در کتابخانه requests میتواند عملکرد برنامههای شما را به طرز قابل توجهی بهبود بخشد. با نگهداری وضعیت بین درخواستها، میتوانید از مزایای ریزهکاریهای HTTP بیشتری مانند کوکیها و هدرهای مشترک بهرهمند شوید و به این ترتیب زمان و منابع مصرفی را کاهش دهید.