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

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

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

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

 

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

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

مقالات مرتبط

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

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

پدیده تجارت

01 مهر 1398

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

پدیده تجارت

20 آذر 1396

Bootstrap چیست و کاربردهای آن در کجاست؟ Bootstrap چیست و کاربردهای آن در کجاست؟ مقالات طراحی وب سایت

پدیده تجارت

03 مرداد 1397

طراحی بازی اندروید با بازی ساز Unity طراحی بازی اندروید با بازی ساز Unity مقالات تجارت الکترونیک

پدیده تجارت

01 اردیبهشت 1397

مشاوره تخصصی وب برندینگ در اصفهان (Branding & Web Branding) مشاوره تخصصی وب برندینگ در اصفهان (Branding & Web Branding) مقالات برندینگ

پدیده تجارت

04 خرداد 1396

طراحی اپلیکیشن مانند اسنپ و تپ سی طراحی اپلیکیشن مانند اسنپ و تپ سی مقالات تجارت الکترونیک

پدیده تجارت

07 آبان 1396

توضیحاتی درباره فریم ورک لاراول توضیحاتی درباره فریم ورک لاراول مقالات طراحی وب سایت

پدیده تجارت

21 فروردین 1395

همه چیز درباره HTML5 + نحوه استفاده همه چیز درباره HTML5 + نحوه استفاده مقالات طراحی وب سایت

پدیده تجارت

14 مرداد 1392

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

پدیده تجارت

20 آذر 1396

برنامه نویسی ios در اصفهان برنامه نویسی ios در اصفهان مقالات موبایل

پدیده تجارت

06 شهریور 1398

طراحی فروشگاه اینترنتی در اصفهان طراحی فروشگاه اینترنتی در اصفهان مقالات برندینگ

پدیده تجارت

03 مهر 1398

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

پدیده تجارت

16 فروردین 1401

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

0

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