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

شـمـــاره تــمــاس
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 گذاشتیمش، نشون داده میشه.

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

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

 

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

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

مقالات مرتبط

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

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

پدیده تجارت

20 فروردین 1401

آموزش وردپرس صفر تا صد آموزش وردپرس صفر تا صد مقالات طراحی وب سایت

پدیده تجارت

24 اسفند 1400

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

پدیده تجارت

13 شهریور 1397

چگونه در اندروید استودیو Bottom navigation ایجاد کنیم؟ چگونه در اندروید استودیو Bottom navigation ایجاد کنیم؟ مقالات تجارت الکترونیک

پدیده تجارت

22 اردیبهشت 1397

بازاریابی چریکی (گوریلا مارکتینگ ) چیست ؟ بازاریابی چریکی (گوریلا مارکتینگ ) چیست ؟ مقالات برندینگ

پدیده تجارت

17 فروردین 1399

الزاماتی که قبل از سفارش اپلیکیشن اندروید حتما باید رعایت کنید! الزاماتی که قبل از سفارش اپلیکیشن اندروید حتما باید رعایت کنید! مقالات تجارت الکترونیک

پدیده تجارت

08 آبان 1397

بازاریابی تعاملی ( اینتراکتیو مارکتینگ) چیست ؟ بازاریابی تعاملی ( اینتراکتیو مارکتینگ) چیست ؟ مقالات برندینگ

پدیده تجارت

07 اردیبهشت 1399

نیاز مشتری چیست؟ نیاز مشتری چیست؟ مقالات تجارت الکترونیک

پدیده تجارت

16 فروردین 1401

محتوای همیشه سبز چیست ؟ محتوای همیشه سبز چیست ؟ مقالات سئو

پدیده تجارت

24 اسفند 1400

تفاوت طراحی سایت در یک شرکت رسمی در اصفهان چیست ؟ تفاوت طراحی سایت در یک شرکت رسمی در اصفهان چیست ؟ مقالات طراحی وب سایت

پدیده تجارت

24 مهر 1395

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

پدیده تجارت

16 فروردین 1401

آیا UX بر سئو SEO  تأثیر می گذارد آیا UX بر سئو SEO تأثیر می گذارد مقالات سئو

پدیده تجارت

20 فروردین 1401

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

0

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