یک فنجان مشاوره
مهـمـان مــا باشیـد

شـمـــاره تــمــاس
031-36628509

چگونه برای دریافت اطلاعاتمان در اندروید به Server متصل شویم؟

انتشار 08 خرداد 1397
دیدگاه ها 0
زمان تقریبی مطالعه
گردآوری پدیده تجارت

Server چیست؟

با سلام. امیدواریم حالتون خوب باشه و روز خوبی رو شروع کرده باشین. در مقاله های قبلی مباحثی از اندروید رو با هم بررسی کردیم. از آموزش TAB بگیریم تا ساختن یه دیتابیس معمولی و متصل کردنش به اندروید. امروزم میخوایم یکی از مباحث مهمی که تو بیشتر اپلیکیشن ها نقش مهمی داره رو باهم بررسی کنیم. یعنی اتصال برنامه های اندرویدمون به Server.

اول باید ببینیم که سرور چیه و چرا تو برنامه های اندرویدمون نیاز داریم بهش؟

نزدیک ترین و ساده ترین تعریفی که می تونیم برای تعریف سرور پیدا کنیم اینه که سرور یک کامپیوتر همیشه روشن و در دسترسه. وقتی دسترسی سرور به یه شبکه محلی و داخلی محدود باشه، سرور تحت شبکه محسوب میشه. یعنی همه ی کامپیوتر های این شبکه از یک کامپیوتر مرکزی دستور میگیرند و نیازهای خودشون رو به اون کامپیوتر مرکزی منتقل میکنن.

پس تو مبحث سرور، دو مورد کلی وجود داره:

سرور ( server ) : کامیپوتری که وظیفه ی سرویس دهی داره.
کلاینت ( Client ) : کامپیوتری که وظیفه ی سرویس گیری داره.

همونطور که در اول مقاله گفتیم، سرور مثل یک کامپیوتر مرکزی عمل میکنه و کلاینت ها، بقیه کامپوترهارو شامل میشن که دائما از سرور تقاضا دارند و اطلاعاتی رو از اون میگیرن.

حالا که با دو موجودیت کلی سرور آشنا شدیم، می خوایم ببینیم که چطوری می تونیم اطلاعاتمون رو از سمت سرور وارد اپلیکیشن اندرویدمون بکنیم؟

قبل از اینکه جواب سوال بالارو بتونیم بفهمیم، لازمه که به دو تامورد زیر توجه کنیم:

بطور کلی کاربرد سرور به دو صورت زیره:

تولید برنامه‌هایی که اطلاعاتشون رو از سرور میگیرن.

تولید برنامه‌هایی که برای بروز کردن اطلاعتشون به اطلاعات سرور نیاز دارند.

چیزی که باید بش توجه کنید، اینه که برای اینکه بتونید با سرور کار کنید، حتما باید از یه زبان سمت سرور مثل PHP، استفاده کنید. (برای اطلاعات بیشتر به دوره های آموزشی PHP کلیک کنید.)

شروع کار:

چیزایی که تا الان گفتم، بیشتر مقدمه ی کار بودن تا شما با مفهوم کلی سرور آشنا بشید. الان قدم به قدم باهم بقیه راهو ادامه می دیم.

یکی از بهترین و راحت ترین روش ها برای دریافت اطلاعاتمون از سرور محلی (Local)، قالب Json هست. پس برای شروع کار یک فایل به نام Server.php در مسیر لوکال سرور خودمون میسازیم. کد ساده ای که در زیر میبینید، یه آرایه خیلی ساده تو قالب Json هستش:

<?php
$array= array(
                array(
                    "نام",
                    "لطفا نام خود را وارد کنید."),
                array(
                    "نام خانوادگی",
                    "لطفا نام خانوادگی خود را وارد کنید.")
    );
echo json_encode($array);
?>

چون برنامه اندرویدمون با سرور ارتباط داره،پس باید واسه مجوز دسترسی به اینترنت به Manifest بریم و کد زیرو قبل تگ application کنیم:

<uses-permission android:name="android.permission.INTERNET"/>

خب اینم از این. تو مرحله بعدی، باید کدهایی رو به طرف اندرویدمون اضافه کنیم تا بتونیم اطلاعاتو از سرور بگیریم. واسه این کار راه های زیادی هست که می تونید ازشون استفاده کنید اما پیشنهاد من به شما، کتابخانه Volley هستش. کار با این کتابخونه خیلی راحته و کارایی بالایی هم داره. این کلاس یکی از کلاسهای طراحی شده توسط گوگله که مخصوص دریافت اطلاعات از سروره.

خب همونطور که میدونید، برای اینکه بتونیم از این کتابخونه استفاده کنیم، باید اول به پروژمون اضافش کنیم.

compile 'com.android.volley:volley:2.0.1'

(همونطور که در مقاله های قبلی هم گفتیم، اگه نسخه ی اندروید استودیوتون 3 یا 3 به بالا باشه، به جای Compile، از Implementation استفاده می شه.)

خب بعد از اینکه کتابخانه ی Volley رو به پروژمون اضافه کردیم، حالا باید بریم به قسمت Main_Activity و کدهای زیر رو بهش اضافه کنیم:

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        JsonAry request = new JsonAry(
                Request.Method.POST,
                "https://192.168.1.88/getposts.php",
                null,
                new Response.Listener<JSON_Array>() {
                    @Override
                    public void onResponse(JSON_Array response) {
                        Log.i("Get_Response: ", response.toString());
                    }
                }, new Response.ErrorListener() {
                    @Override
                    public void onErrorResponse(VolleyError error) {
                        Log.a("Get_Error: ", error.toString());
                    }
        });

خب چندتا نکته هست که باید در مورد کد بالا بگم. همونطور که می بینید در خط 6 یه آرایه به اسم JsonAry تعریف کردم. این آرایه 5 تا ورودی داره. ورودی هاشو باهم بررسی کنیم تا ببینیم چی هستن:

پارامترهای ورودی:

ورودی 1:

این آرگومان نوع درخواستمونو تشخیص میده که من متد POST رو ترجیح دادم. علت این کارم بخاطر اینه که تو متد GET، وقتی نوار جستجو رو میبنید اطلاعات زیادی رو میبینید. اگر تمایلی به این کار نداشته باشید و امنیت براتون مهم باشه، از متد POST استفاده کنید.

 

ورودی 2:

این ورودی، آدرس سروریه که می خوایم اطلاعاتو ازش بگیریم هستش. نکته ی مهمی که باید بش توجه کنید، اینه که ما فقط اجازه ی وارد کردن آدرس IP شبکه خودمون رو داریم. مثلا ما نمی تونیم از آدرس های رزرو شده یا Localhost استفاده کنیم. برای اینکه بتونیم IP شبکمونو بفهمیم، باید cmd رو اجرا کنیم و دستور ipconfig رو اجراکنیم. باید از قسمت IPv4 Address، آی پی که جلوش هست رو کپی کنیم و تو این ورودی قرارش بدیم.

 

ورودی 3:

پارامترهای ورودیو مشخص میکنه که ما null میزاریم این ورودی رو.

 

ورودی 4:

این قسمت که اسمش Response.Listener هستش، دستورات و استانداردایی هستن که در صورتی که عملیاتمون به درستی کار کرد، باید اجرا شن. در خط 13 همونطور ک میبینید، یک Log گذاشتم تا هر مقداری که از نوع Json هستش رو به رشته تبدیل کنه و تو قسمت Android monitor به ما نشون بده.

 

ورودی 5:

این ورودی دقیقا برعکس ورودی 4 عمل میکنه. یعنی اگه عملیاتمون درست کار نکرد، این آگومان اجرا میشه. درست مثل ورودی 4، واسه این ورودی هم یه Log تو خط 18 تعریف کردیم. مقدار دریافتی که از نوع VolleyError هست رو با toString به رشته تبدیلش کردم تا در Android monitor استودیو نمایش بده.

پردازش و نمایش اطلاعات Json:

خب حالا که کدهای بالارو تو Main_Activity اضافه کردیم، حالا می خوایم اطلاعات Json رو هم نمایششون بدیم. واسه این که اینکارو بکنیم، باید در متد onResponse اینکارو بکنیم. باید یه آرایه هم تعریف کنیم تا بتونیم با دستور getJSONArray آرایه هارو دریافت کنیم. واسه این کار کدهای زیر و اضافه میکنم:

public void onResponse(JSONArray response) {
    try {
        for (int i = 0; i < response.length(); i++) {
            JSONArray postArray = response.getJSONArray(i);
            Toast.makeText(MainActivity.this, PostArray.getString(0), Toast.LENGTH_SHORT).show();
            Toast.makeText(MainActivity.this, PostArray.getString(1), Toast.LENGTH_SHORT).show();
        }
    } catch (JSONException a) {
        Toast.makeText(MainActivity.this, "Error", Toast.LENGTH_SHORT).show();
        a.printStackTrace();
    }
}

همونطور که می بینید، در خط سوم، یه For تعریف کردم تا کل اجزا و آرایه های response رو بررسی کنیم.

خب الان پروژه ما کامله و میتونیم ازش خروجی بگیریم. اگه شما خروجی این پروژه رو بگیرید، میبینید که “نام خود را وارد کنید” که در Toast گذاشتیمش، نشون داده میشه.

خب امیدوارم که از خوندن این آموزش راضی باشید. امروز مطالبی که گفتیم، ساده و بیشتر جنبه ی آموزش داشتند. در مقاله های بعدی مثال های کاربردی تر و پیچیده تر خدمت حضورتون آماده میکنیم.

برای شرکت در دوره های آموزشی مجموعه پدیده تجارت، به قسمت دوره های آموزشی اندروید کلیک کنید. همچنین برای مشاهده ی  اپلیکیشن های کاربردی اندروید، بر روی نمونه کارهای اندروید کلیک کنید. اگر مایل به سفارش اپلیکیشن اندروید نیز هستید، مجموعه پدیده تجارت با ده سال سابقه کار، عضو اتحادیه و با کوله باری از تجربه و دانش در خدمت شما خواهد بود. ما با آغوش باز، منتظر شروع همکاری شیرین و دوستانه با شما خواهیم بود.

 

*آینده از آن کسب و کارهای آنلاین است*

تولید شده در بخش تولید محتوا پدیده تجارت

مقالات مرتبط

شاید علاقمند به دیدن این مقالات نیز باشید
(آرشیو کامل)

متریال دیزاین (Material Design) چیست ؟ متریال دیزاین (Material Design) چیست ؟ مقالات طراحی وب سایت

پدیده تجارت

31 تیر 1399

انواع روش های تبلیغات در اینترنت انواع روش های تبلیغات در اینترنت مقالات برندینگ

پدیده تجارت

14 فروردین 1396

چگونه وب سایت خود را مشهور کنید ؟ چگونه وب سایت خود را مشهور کنید ؟ مقالات تجارت الکترونیک

پدیده تجارت

19 اسفند 1398

تفاوت کسب و کار آنلاین و سنتی تفاوت کسب و کار آنلاین و سنتی مقالات برندینگ

پدیده تجارت

06 آبان 1398

چگونه در فضای مجازی برند شویم؟ چگونه در فضای مجازی برند شویم؟ مقالات برندینگ

پدیده تجارت

13 اردیبهشت 1396

4 روش مهم در زمینه کسب درآمد از اینستاگرام 4 روش مهم در زمینه کسب درآمد از اینستاگرام مقالات تجارت الکترونیک

پدیده تجارت

10 اسفند 1395

Google Blocklist چیست؟ و چگونه از آن خارج شویم؟ Google Blocklist چیست؟ و چگونه از آن خارج شویم؟ مقالات طراحی وب سایت

پدیده تجارت

16 فروردین 1401

اندروید جت پک (Android Jetpack) چیست؟ اندروید جت پک (Android Jetpack) چیست؟ مقالات تجارت الکترونیک

پدیده تجارت

23 اسفند 1400

چند ایده جالب برای کسب درآمد از کسب و کار آنلاین چند ایده جالب برای کسب درآمد از کسب و کار آنلاین مقالات برندینگ

پدیده تجارت

17 مرداد 1396

دامنه ی ir یا com? دامنه ی ir یا com? مقالات طراحی وب سایت

پدیده تجارت

11 آذر 1392

متد اسکرام چیست؟ متد اسکرام چیست؟ مقالات طراحی وب سایت

پدیده تجارت

22 فروردین 1395

آموزش افترافکت در اصفهان آموزش افترافکت در اصفهان مقالات برندینگ

پدیده تجارت

24 اسفند 1400

دیدگاه کاربران

0

0 0 رای ها
امتیازدهی به مقاله
اشتراک در
اطلاع از
0 نظرات
بازخورد (Feedback) های اینلاین
مشاهده همه دیدگاه ها