ارسال پیامهای جادویی
### داستان بیست و پنجم: ارسال پیامهای جادویی
آراد که همیشه به دنبال یادگیری مهارتهای جدید بود، پس از آشنایی با برنامهنویسی و کار با دادهها، تصمیم گرفت وارد دنیای شبکهها و وب شود. او میخواست بداند چطور میتواند برنامهای بنویسد که با سرورهای مختلف در اینترنت ارتباط برقرار کند و درخواستهایی ارسال کند.
آراد به سینا پیام داد: «سینا، من خیلی علاقه دارم که بتونم با سرورها و سایتها ارتباط برقرار کنم. چطور میتوانم با شبکهها کار کنم و درخواستهای وب بفرستم؟»
سینا با خوشحالی جواب داد: «خیلی عالیه آراد! برای این کار، میتونی از کتابخانه `requests` استفاده کنی. این کتابخانه به تو اجازه میده که به راحتی درخواستهای HTTP ارسال کنی و جوابها رو دریافت کنی. این درخواستها میتونند به صورت GET (برای دریافت دادهها) یا POST (برای ارسال دادهها) باشند.»
#### آشنایی با درخواستهای GET
سینا اولین قدم را به آراد نشان داد و یک درخواست ساده GET نوشت. درخواست GET معمولاً برای دریافت اطلاعات از یک سرور یا وبسایت استفاده میشود.
“`python
import requests
# ارسال درخواست GET به یک وبسایت
response = requests.get(“https://jsonplaceholder.typicode.com/posts”)
# بررسی وضعیت پاسخ
if response.status_code == 200:
print(“دریافت اطلاعات موفقیتآمیز بود!”)
print(response.text) # نمایش محتویات پاسخ
else:
print(“خطا در دریافت اطلاعات.”)
“`
سینا توضیح داد که در این کد از تابع `get()` برای ارسال یک درخواست GET به آدرس URL مشخص استفاده شده است. بعد از ارسال درخواست، پاسخ سرور در متغیر `response` ذخیره میشود. سپس با بررسی کد وضعیت (`status_code`)، آراد میتواند تشخیص دهد که آیا درخواست موفق بوده است یا خیر.
آراد با شوق گفت: «وای! این خیلی جالب بود که میتوانم اطلاعاتی که از وبسایتها دریافت میکنم رو با این راحتی بخونم!»
#### ارسال دادهها با درخواستهای POST
آراد که حالا با درخواستهای GET آشنا شده بود، میخواست بداند چطور میتواند اطلاعاتی را به یک سرور ارسال کند. سینا توضیح داد که برای ارسال دادهها باید از درخواست POST استفاده کند. این درخواست معمولاً برای ارسال فرمها یا دادههای جدید به سرور استفاده میشود.
“`python
import requests
# دادههایی که میخواهیم ارسال کنیم
data = {
“title”: “پیام جدید”,
“body”: “این یک پیام تستی است.”,
“userId”: 1
}
# ارسال درخواست POST
response = requests.post(“https://jsonplaceholder.typicode.com/posts”, data=data)
# بررسی وضعیت پاسخ
if response.status_code == 201:
print(“دادهها با موفقیت ارسال شدند!”)
print(response.text) # نمایش پاسخ سرور
else:
print(“خطا در ارسال دادهها.”)
“`
سینا توضیح داد که در این کد، دادهها به صورت یک دیکشنری به سرور ارسال میشوند. درخواست POST با استفاده از `requests.post()` ارسال میشود و اطلاعات به آدرس URL داده میشود. پس از ارسال درخواست، سرور پاسخ میدهد و آراد میتواند وضعیت پاسخ را بررسی کند.
آراد با تعجب گفت: «یعنی من میتوانم به راحتی دادهها رو به سرور بفرستم و جواب بگیرم؟ این خیلی جالب است!»
#### بررسی وضعیت پاسخها
آراد خواست بداند چطور میتواند به طور دقیقتر از وضعیت پاسخهای دریافتی مطمئن شود. سینا به او گفت: «درخواستهای HTTP معمولاً با کدهای وضعیت (status codes) پاسخ میدهند. برای مثال، کد وضعیت ۲۰۰ نشاندهنده موفقیت، ۴۰۴ برای پیدا نکردن صفحه و ۵۰۰ برای خطای سرور است.»
سینا کد زیر را نوشت تا آراد بتواند کدهای وضعیت مختلف را بررسی کند:
“`python
import requests
# ارسال درخواست GET به یک وبسایت
response = requests.get(“https://jsonplaceholder.typicode.com/posts”)
# بررسی وضعیت پاسخ
if response.status_code == 200:
print(“دریافت اطلاعات موفقیتآمیز بود!”)
elif response.status_code == 404:
print(“صفحه مورد نظر پیدا نشد.”)
elif response.status_code == 500:
print(“خطای سرور.”)
else:
print(f”وضعیت پاسخ: {response.status_code}”)
“`
سینا توضیح داد که با استفاده از `status_code` میتوان وضعیت پاسخ را بررسی کرد و بر اساس آن تصمیمات مختلفی گرفت. آراد از این که توانست درک بهتری از وضعیتهای مختلف پاسخها پیدا کند، خوشحال شد.
#### نتیجهگیری
آراد با خوشحالی گفت: «حالا میبینم که میتوانم درخواستهایی به سرورها بفرستم و پاسخها رو دریافت کنم. این خیلی جالب بود!»
سینا تایید کرد: «آفرین! با استفاده از کتابخانه `requests` میتوانی به راحتی با سرورها و وبسایتها ارتباط برقرار کنی و دادهها رو ارسال و دریافت کنی.»
آراد گفت: «ممنون سینا! حالا میدونم چطور میتوانم پیامهای جادویی به دنیای وب بفرستم!»