کتابخانه requests یکی از محبوب‌ترین کتابخانه‌ها برای انجام درخواست‌های HTTP در پایتون است. این کتابخانه استفاده از پروتکل HTTP را بسیار ساده می‌سازد و به شما امکان می‌دهد تا به راحتی با API ها و وب‌سایت‌ها ارتباط برقرار کنید. در اینجا به بررسی نحوه ارسال و دریافت درخواست HTTP با requests می‌پردازیم.

نصب کتابخانه requests

اگر هنوز کتابخانه requests را نصب نکرده‌اید، می‌توانید با استفاده از pip آن را نصب کنید:

pip install requests

1. ارسال یک درخواست GET

درخواست GET یکی از پرکاربردترین درخواست‌هاست. با استفاده از دستور زیر می‌توانید داده‌ها را از یک API یا URL دریافت کنید:

import requests

response = requests.get('https://jsonplaceholder.typicode.com/posts')
print(response.status_code)  # وضعیت پاسخ
print(response.json())       # محتوای JSON پاسخ

2. ارسال یک درخواست POST

اگر بخواهید داده‌هایی را به یک سرور ارسال کنید، از درخواست POST استفاده می‌کنید:

import requests

data = {
    'title': 'foo',
    'body': 'bar',
    'userId': 1
}

response = requests.post('https://jsonplaceholder.typicode.com/posts', json=data)
print(response.status_code)  # وضعیت پاسخ
print(response.json())       # محتوای JSON پاسخ

آموزش مقدماتی پایتون (رایگان)

3. ارسال داده‌های فرم (Form Data)

برای ارسال داده‌ها به صورت فرم (form)، می‌توانید از آرگومان data استفاده کنید:

import requests

payload = {
    'username': 'user',
    'password': 'pass'
}

response = requests.post('https://example.com/login', data=payload)
print(response.status_code)  # وضعیت پاسخ
print(response.text)         # متن پاسخ

4. ارسال هدر (Headers)

شما می‌توانید هدرهای سفارشی را به درخواست‌های خود اضافه کنید:

import requests

headers = {
    'Authorization': 'Bearer YOUR_TOKEN'
}

response = requests.get('https://api.example.com/data', headers=headers)
print(response.json())  # محتوای JSON پاسخ

آموزش کتابخانه ریکوئست (رایگان)

5. مدیریت پاسخ‌ها

کتابخانه requests به شما امکاناتی برای مدیریت پاسخ‌ها می‌دهد:

  • بررسی وضعیت (Status Code): با استفاده از response.status_code می‌توانید وضعیت درخواست را بررسی کنید.
  • دریافت محتوای JSON: با استفاده از response.json() می‌توانید محتوای JSON پاسخ را دریافت کنید.
  • دریافت متن پاسخ: با استفاده از response.text می‌توانید متن کامل پاسخ را دریافت کنید.

6. مدیریت خطاها

برای مدیریت خطاها نیز می‌توانید از روش‌های زیر استفاده کنید:

try:
    response = requests.get('https://jsonplaceholder.typicode.com/nonexistent')
    response.raise_for_status()  # اگر وضعیت پاسخ 4xx یا 5xx باشد، خطا ایجاد می‌کند
except requests.exceptions.HTTPError as err:
    print(f"خطا در درخواست: {err}")

نتیجه‌ گیری

ارسال و دریافت درخواست HTTP در زبان پایتون و با بهره‌برداری از کتابخانه ریکوئست، می‌توانید به راحتی با API ها و وب‌سایت‌ها ارتباط برقرار کنید و داده‌ها را دریافت و ارسال کنید. با مدیریت مناسب پاسخ‌ها و خطاها، می‌توانید برنامه‌های خود را به‌طور مؤثرتر توسعه دهید.