قبلا در مورد ارتباط با سرور در فلاتر صحبت کردیم و از اهمیت آن در طراحی اپلیکیشن و ساختار جیسون نیز آشنا شدیم.
برای کار با وب سرویس و ارسال اطلاعات متدهای مختلفی برای پروتکل http وجود دارد که هرکدام از آنها در شرایط مختلفی کاربرد دارد. متدهایی مثل GET, POST, DELETE, PUT که از بین آنها دو متد GET و POST بیشترین کاربرد را دارند.
روشی که در مطلب قبلی استفاده میکردیم ارسال اطلاعات از طریق متد GET بود.
در این روش اطلاعات ما داخل ادرس url قرار میگیره که امنیت پایینی داره.
زیرا در این حالت تمام پارامترهای ارسالی به وب سرویس قابل مشاهده است و نمیتوانید برای ارسال اطلاعات حساس مانند رمز عبور یا توکن احراز هویت از آن استفاده کنید. همچنین اگر تعداد اطلاعاتی که قصد ارسال آنها را دارید زیاد باشند این روش باعث سردرگمی و پیچیدگی آدرس url میشود.
اما در این مطلب با همدیگه قصد داریم که ارسال اطلاعات به روش POST را بررسی کنیم.
در شبکههای کامپیوتری، درخواست post یک درخواست HTTP است که برای ارسال دادهها به یک سرور استفاده میشود.
این دادهها میتوانند شامل فرمها، فایلها یا هر نوع داده دیگری باشند. درخواست post معمولاً برای ایجاد یا بهروزرسانی منابع روی سرور استفاده میشود.
درخواست post با ارسال یک درخواست HTTP به یک سرور آغاز میشود.
این درخواست شامل یک هدر HTTP است که نوع درخواست را تعیین میکند.
پس از ارسال درخواست، سرور دادههای ارسال شده را دریافت میکند. سرور سپس این دادهها را پردازش میکند و یک پاسخ HTTP را به مشتری ارسال میکند. پاسخ HTTP میتواند شامل یک کد وضعیت HTTP، یک هدر HTTP و یک بدن پاسخ باشد.
درخواست post معمولاً برای ایجاد یا بهروزرسانی منابع روی سرور استفاده میشود.
به عنوان مثال، یک درخواست post میتواند برای ایجاد یک حساب کاربری جدید، بهروزرسانی یک پروفایل کاربری یا ارسال یک فرم استفاده شود.
مشخصات یک درخواست POST شامل موارد زیر است:
برای ارسال درخواست POST به همان روش قبلی عمل میکنیم یعنی استفاده از پکیج http اما به جای دستور http.get از دستور http.post استفاده میکنیم که مشخص کننده نوع متد ارتباطی میباشد و پارامترهای ارسالی خودمون و به شکل یک جیسون آبجکت مینویسیم یا همان مپ در واقع.
var url = 'http://url.com';
var response = await http.post(url,body: {'name':'Hesam','postid':'1','message':'salam' });
print('Server respones: ${response.body}');
return response
در کد بالا سه پارامتر مختلف را به وب سرویس مورد نظر ارسال میکنیم.
برای این کار از ویژگی به نام body استفاده میکنیم که یک ساختار به شکل مپ دریافت میکند.
کلیدهای این مپ همان پارامترهایی هستند که در API قرار است که دریافت شوند و با مشخص کردن مقدار آنها اطلاعات مورد نظر به سرور ارسال میشوند.
اگر نیاز دارید که یک جیسون آبجکت واقعی به سرور ارسال کنید میتوانید از دستور json.encode استفاده کنید و رشته جیسون خودتون و داخل آن قرار بدید.
باقی موارد همانند روش قبلی میباشد و بعد از ارسال درخواست یک پاسخ از سمت سرور دریافت میشود که معمولا شامل محتویات جیسون است و میتوانید با تجزیه کردن آن عملیات مورد نظر خود را انجام دهید.
وقتتون بخیر و خسته نباشید
برای دریافت json و قرار دادن ان در لیست ویو دنبال چه اموزشی باشم ؟
ممنون از راهنماییتون
سلام آموزش متنی دریافت جیسون و نمایش در لیست داخل مطالب وب سایت موجود هست. بصورت ویدیویی هم داخل دوره آموزشی به صورت کامل این اموزش قرار داده شده است.
سلام در اموزشهای اموزش کار با سرویس هست؟مانند دریافت سرویس برای لیست ویو و یا سرویسهای ثبت و ذخیره؟؟
سلام اگر منظورتون آموزش وب سرویس دریافت اطلاعات و نمایش در لیست ویو هست بله در آموزش های سایت هست.
mrc mn kheili moshkel dashtam