سلام یکی از اساسی ترین نیاز های هر برنامه نویس موبایل کار با اینترنت هستش یعنی شما بتونید اطلاعات رو از اینترنت یا Api بگیرید و بر اساس اون کاری رو انجام بدید.
اما توی فلاتر چطور میشه این کار رو انجام داد؟
توی این نوشته از صفر تا صد این کار رو باهم انجام میدیم.
خوشبختانه فلاتر ابزار هایی رو برای دریافت اطلاعات از اینترنت فراهم کرده که یکی از اونها پکیج http هستش.
برای این کار شما باید مراحل زیر رو قدم به قدم انجام بدید:
پکیج http یک راه سادس برای دریافت اطلاعات از اینترنت. برای اضافه کردن این پکیج به پروژتون کافیه وارد اندروید استودیو بشید و داخل ترمینال خودتون دستور زیر رو وارد کنید:
flutter pub add http
توجه داشته باشید موقع اجرای دستور حتما از ابزار های رفع تحریم استفاده کنید.
بعد از اجرای این دستور پکیج http به پروژه شما اضافه میشه. قدم بعد اینه که مجوز اینترنت رو به برنامتون اضافه کنید( برای اپ اندروید) برای این کار هم کافیه وارد فایل manifest بشید و کد زیر رو به تگ manifest اضافه کنید:
<uses-permission android:name="android.permission.INTERNET" />
در نهایت هر جایی که خواستید از این پکیج استفاده کنید کافیه اونو import کنید تا دارت بتونه پکیج رو تشخیص بده. به عنوان مثال اگر یک فایل تحت عنوان main.dart داشته باشیم خط کد زیر رو به اول فایلمون اضافه میکنیم:
import 'package:http/http.dart' ;
حالا که پکیج رو با موفقیت به پروژمون اضافه کردیم وقتشه تا یک درخواست ایجاد کنیم که اطلاعات رو از Api بگیریم.
برای مثال من یک درخواست به سایت openWeather ارسال میکنم تا اطلاعات آب و هوا رو برای یک نقطه جغرافیایی خاص بگیرم.
برای این کار من یک متد رو مینویسم تا هر موقع اون رو فراخوانی کردم یک درخواست به Api بزنه و اطلاعات رو به من بده، متدی که برای این کار مینویسیم به این شکله:
Future getData() async { String url = https://api.openweathermap.org/data/2.5/weather?lat=86.56&lon=135.02'; Response response =await get(Uri.parse(url)); String data = response.body; return data; }
قطعه کد بالا یک متد async هستش (چون نمیخوایم برنامه متوقف بشه تا جواب درخواستمون بیاد ) به اسم getData که یک خروجی از نوع Future به ما میده، حالا این که Future چیه و جه کاربردی داره رو میتونید از داکیومنت خود فلاتر بخونید.
داخل بدنه این متد ما یک متغییر به اسم url داریم که آدرسی هستش که میخوایم به اون درخواست بزنیم و در خط بعد هم با استفاده از متد get (که از پکیج http میاد) درخواستمون رو ارسال میکنیم و در نهایت وقتی که جواب درخواستمون اومد اون رو داخل یک متغییر از نوع Response میریزیم که بتونیم ازش استفاده کنیم.
متغییر response دارای یک سری ویژگی هایی هست که به درد ما میخوره به عنوان مثال
response.statusCode
با کمک این ویژگی شما میتونید کدی که سرور به شما برمیگردونه رو داشته باشید و چک کنید آیا درخواستتون درست انجام شده یا نه.
به طور معمول اگر کد 200 رو به شما بده یعنی درخواستتون با موفقیت انجام شده و مشکلی ندارید.
در نهایت متد getData یک متغییر String رو برمیگردونه که شما میتونید هرکاری خواستید باهاش انجام بدید :)
امیدوارم که این نوشته به دردتون خورده باشه.
شاد باشید :)