کتابخانه 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 ها و وبسایتها ارتباط برقرار کنید و دادهها را دریافت و ارسال کنید. با مدیریت مناسب پاسخها و خطاها، میتوانید برنامههای خود را بهطور مؤثرتر توسعه دهید.