صفحه 1 از 3 123 آخرآخر
نمایش نتایج 1 تا 40 از 118

نام تاپیک: آموزش ساخت وب سرویس و استفاده در اندروید

  1. #1

    آموزش ساخت وب سرویس و استفاده در اندروید

    سلام دوستان خود من مدتها پیش بدنبال یادگیری وب سرویس در اندروید بودم و آموزشهای زیادی در این مورد نبود یا اونایی که بود خیلی کم بودند تا اینکه با هزار جستجو و مطالعه تا حد مطلوبی این آموزشها را فرا گرفتم حالا میام اونا رو اینجا میذارم :

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

    خب برای وب سرویس لازمه که ابتدا ابزارهای آن را از جمله داشتن یک سرور (که ما چون میخواهیم لوکال کار کنیم بهتر است که نرم افزار wamp server را دانلود کنیم ) و یک محیط برنامه نویسی php & html مانند notepad++ و dreamviwer یا phpstorm و یا ... داشته باشیم .

    دانلود wamp server : x86 حجم 38 m
    دانلود wamp server : x64 حجم 41 m

    پسورد soft98.ir

    دانلود notepad++ حجم 6 m


    پسورد soft98.ir

    اگه استقبال شد بحث را ادامه میدیم .

  2. #2
    کاربر دائمی آواتار slr560
    تاریخ عضویت
    اسفند 1389
    محل زندگی
    تهران
    پست
    868

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

    عالیه دوست عزیز. ادامه بدین.

  3. #3
    کاربر دائمی آواتار hamed_hossani
    تاریخ عضویت
    بهمن 1388
    محل زندگی
    بوشهر
    پست
    651

  4. #4

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

    سلام این هم یک آموزش دیگه
    http://developer.xamarin.com/guides/...king_with_WCF/

  5. #5

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

    نقل قول نوشته شده توسط mhn143 مشاهده تاپیک
    سلام این هم یک آموزش دیگه
    http://developer.xamarin.com/guides/...king_with_WCF/


    ممنون از شما دوستان ولی از این پس سعی کنین بحث آموزشی رو که خودتون یادگرفتید در این جا بذارین و از ارجاع لینک خودداری کنید چرا که این فقط یک پست آموزشی هستش .
    آخرین ویرایش به وسیله harani : یک شنبه 01 تیر 1393 در 22:13 عصر

  6. #6

    Post نقل قول: آموزش ساخت وب سرویس و استفاده در اندروید

    جلسه ی دوم رفع مشکلات در wamp :

    توجه بفرماید تنظیمات زیر بر حسب control panel ویندوز 7 ( که فکر کنم برای vista هم همینه ) برای xp اگه نمیدانید کلمات کلیدی آن را سرچ کنید و تنظیمات را انجام دهید .مطمئناً ویندوز های ویندوز 8 و 8.1 تفاوت خاصی با 7 نداره .

    1- سبز نشدن wamp :

    بسیاری از شما زمانیکه wamp را نصب و اجرا میکنید بایستی آیکن آن (که در گوشه ی پایین سمت راست در ناحیه task bar) ابتدا قرمز سپس نارنجی رنگ و در نهایت سبز رنگ شود اگر سبز رنگ نشد wamp شما بدرستی نصب شده است اما وجود یکسری از ابزارهای تحت سرور با wamp دچار تداخل شده اند . به عنوان مثال اگر شما از sql server استفاده میکنید ابتدا بایستی همه ی سرویس های آن را غیر فعال (stop) کنید و دوباره wamp را اجرا کنید . در حالت کلی برای stop کردن سرویس های نرم افزارها وارد (control panel => system and security => admistrative tools=>services) میشویم . سرویس مربوطه را پیدا میکنیم و چناچه status آن started بود روی آن راست کلیک کنید و آن را stop کنید . برای تمامی service ها فعال تحت server مانند sql server این عمل را تکرار کنید . در نهایت wamp را stop و start کنید بایستی آیکن wamp پس از گذشت چند ثانیه سبز رنگ شود .

    2- مشکل در ip :

    پس از اینکه wamp شما بدرستی start شد . برازر خود را بالا بیارین (من خودم firefox رو دوست دارم) سپس عبارت localhost را تایپ کنید بایستی صفحه ی مربوط به wamp نشون داده بشه اگه نشد یا wamp بدرستی نصب نشده یا همچنان سبز رنگ نیست . اگر درست بود به جای localhost تایپ کنید 127.0.0.1 (این عبارت دقیقاً معنی local host میده ) همچنین به جای local host اگر ip خودتون هم تایپ کنین بایستی صفحه مربوطه به wamp در برازر بیاد .

    صفحه ی مربوط در wamp در برازر

    http://dab1nmslvvntp.cloudfront.net/...07/wamp-02.jpg


    چگونه ip خودمون را بفهمیم :

    راه اول : در قسمت مربوط به network در پایین سمت راست کامپیوتر (در ناحیه task bar) راست کلیک کنید کنید سپس open network and sharing center را انتخاب کنید .
    یا به مسیر Control Panel\Network and Internet\Network and Sharing Center بروید قسمت connections را انتخاب کنید در قسمت بالا اومده details را کلیک کنید قسمت ipv4 address همان ip شماست .

    2- یه کار دیگه این که میتوان در پنجره start (که میتوان با کلید پنجره کیبورد رو بزنید) تایپ کنید . cmd سپس enrter و در پنجره ظاهر شده ipconfig رو تایپ کنید و enter رو بزنید مقدار ipv4 address آدرس ip شماست .

    حال رسیدیم به این مشکل که ip زدیم و صفحه wamp ظاهر نشد . پوشه ی wamp رو که نصب کردیم باز میکنیم و به مسیر \wamp\bin\apache\Apache<version code>\conf\ میریم :

    حال که به این مسیر رسیدن برروی فایل httpd.conf راست کلیک کنید سپس با notepad یا notepad++ (بهتره) ویرایش کنید . یا این فایل و درگ دراپ کنید تو یکی از محیط های ویرایش حال که این که باز کردید عبارت زیر رو بیابید :

    <Directory "c:/wamp/www">
    #
    # Possible values for the Options directive are "None", "All",
    # or any combination of:
    # Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
    #
    # Note that "MultiViews" must be named *explicitly* --- "Options All"
    # doesn't give it to you.
    #
    # The Options directive is both complicated and important. Please see
    # http://httpd.apache.org/docs/2.4/mod/core.html#options
    # for more information.
    #
    Options Indexes FollowSymLinks

    #
    # AllowOverride controls what directives may be placed in .htaccess files.
    # It can be "All", "None", or any combination of the keywords:
    # AllowOverride FileInfo AuthConfig Limit
    #
    AllowOverride All

    #
    # Controls who can get stuff from this server.
    #
    # Require all granted
    # onlineoffline tag - don't remove
    Order Deny,Allow
    Deny from all
    Allow from 127.0.0.1
    Allow from ::1
    Allow from localhost
    Allow from 192.168.1
    Allow from 192.168.56

    </Directory>


    در این بالا همانطور که میبیند در قسمت هایی شامل Allow from هستید این دو گزینه Allow from 192.168.1 و Allow from 192.168.56 ای پی خودتان هست . اگر با تایپ ip به جای localhost صفحه wamp باز نشد . کافی مانند این قسمت ip خودتان را به این صورت وارد میکنید Allow from + ip (هر قسمت مربوط به Allow from مانند بالا را نداشتید به همین صورت ثبت نمایید ) فایل را ذخیره کنید. یکبار wamp (یادم نمیاد ولی فکر کنم یکبارم باید سیستم رو هم) reset کنید . سپس با وارد کردن ip صفحه wamp ظاهر میشود . در غیر این صورت مراحل را نادرست دنبال کردید .

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


    حال داخل notepad++ بشیم قبل از کدنویسی از منوی encoding گزینه ی encoding in utf8 رو انتخاب کنید و در قسمت language => p => php را انتخاب کنید .
    آخرین ویرایش به وسیله harani : یک شنبه 01 تیر 1393 در 12:32 عصر

  7. #7

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

    harani عزیز من خیلی وقته دارم دنبال آموزش خوب درباره وب سرویس میگردم لطفا آموزش رو ادامه بدید...

  8. #8

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

    جلسه ی سوم وب نویسی با PHP : قسمت اول

    من در ابتدا قصد دارم کدنویسی تحت وب را آموزش بدم بعد استفاده اونو در اندروید هر چند دانشم زیاد نیست ولی تا حدی که کار رابندازه بلدم اگه میخواین درست حسابی php یاد بگیرین پیشنهاد من سایت معروف

    http://www.w3schools.com
    هستش به طور گویا و جامع تمام موارد رو توضیح داده .


    چرا php ?

    php قابلیت سرعت اجرای بالا در صفحات در مقابل خیلی محیط ها ی دیگه مانند asp را دارد . سازگاری با بیشتر سیستم عامل ها و server ها مانند apache و .. می باشد . و مهم تر آنکه برای کسانی با java (مانند ما اندروید کارها) و C کار کردند یادگیری بسیار ساده ای دارد .

    خدا رو شکر از این بحث و جدل ها تو نت ریخته اگر دوستی میخواد تعصبی نشون بده (که نمیدونم asb سرعت بالاتری داره و ...) تعصبش بی دلیل من نظر خودم و سایر اساتید رو نوشتم .

    حال بریم بدنبال ادامه ی کار :

    همانطور که گفتم شما به یک wamp نیاز دارید و یک محیط برنامه نویسی برای php .از سمت wamp که ok شدیم حال میریم بدنبال php :

    من گفتم که میتونید از notepad++ استفاده کنید ولی notepad++ برای کد نویسی ابزار حرفه ای نیست چرا که نسبت به نرم افزارهای دیگه خیلی هوشمند نیست و قابلیت عیب یابی کد هم در آن وجود ندارد و معمولاً مانند note pad ابزار ویرایش هست .
    من خودم از intellij idea استفاده میکنم اگه شما هم مانند من نمیخواهید از note pad استفاده کنید کافی تو google سرچ کنید php idea یا محیط برنامه نویسی php یک لیست بلند بالا از محیط ها مختلف نشون داده میشن یکی از این محیط های قدرتمند محیط JetBrains PhpStorm هستش که میتونید آن را از اینجا دانلود کنید http://www.p30world.com/6291/jetbrains-phpstorm/ محیط برنامه نویسی برای php خیلی هستش مثل dreamweaver ، netbeans , Zend Studio ، phpDesigner والی ماشالا بسته به سلیقتون هر کدومشوم رو که دوست داشتید میتونید بدانلودید

    به هر حال خیلی ها شاید سرعت اینترنتشون کمه یا حجم دانلودشون محدوده ما از همون notepad++ استفاده میکنم .

    اولین سایت لوکال خود را ایجاد کنید :

    شما تو درایوی که wamp رو نصب کردید میان یه پوشه مثل /dev/projects/websites می سازید که همه ی پروژتون بریزین تو اون حالا اگه میخوای یه محیط برنامه نویسیم برای php داشته باشین میتونی توی dev/idea بریزین :

    مسیر پروژه بالا را داشته باشین حال میام سایت را ایجاد میکنیم . روی ایکن wamp سبز رنگ در نوار task bar کلیک کنید و مطابق شکل کار نمایید و یک alias جدید بسازید :


    (Apache + alias directories +add an alias)

    new alias.png


    با این کار وارد یک محیط کنسول شکل مانند cmd ویندوز میشوید .

    در این قسمت اسم سایتی که میخواهید ایجاد کنید را وارد کنید مثلاً samplesite و enter را بزنید .
    سپس بایستی میسری که فایل ها پروژتون هست را در این قسمت وارد کنید که بهتر است مسیر پروژه (همان مسیر /dev/projects/websites/<YourSiteName> فولدر <YourSiteName> که در مسیر مربوطه باید بسازید) را تایپ کنید و enter را بزنید.

    حال داخل notepad++ بشیم قبل از کدنویسی از منوی encoding گزینه ی encoding in utf8 رو انتخاب کنید و در قسمت language => p => php را انتخاب کنید .

    کد زیر را در آن میریزیم :


    <؟php
    echo "This is First My Site";
    ?>



    من کد نویسی php را در جلسات بعد بیشتر توضیح خواهم داد :

    حال آن را در مسیر مربوطه و با نام index ذخیره میکنید .

    browser خود را باز کنید و localhost را تایپ کنید . در قسمت your aliases بایستی نام پروژه ی شما آمده باشد و گرن شما به اشتباهی مراحل را دنبال کردید . زمانی که شما برروی سایتتون کلیک میکنید بایستی مقدار This is First My Site در برازر شما آمده باشد .

    حال یکسری از دوستان تمام مراحل را درست میرن و با خطای Forbidden مواجه میشن آن ها بایستی کاری کاملاً متفاوتی انجام دهند .

    و حالا راه حل چیست :

    ابتدا اگر aliase ای ایجاد کردید را پاک کنید : به قسمت ساخت alias جدید ( که در بالا به همراه عکس نشون داده شد) بروید در این جا شما لیستی از دایرکتوری ها را میبنید پروژه خود را بیابید و delete alias رو میزنید و wamp دوباره reset میشود .پروژه خودتون رو از مسیر پروژتون cut کنید .

    به مسیر C:\wamp\www (یا هر دایرکتوری که wamp داره ) همینجا پروژتون رو همراه با فولدر مربوطش paste کنین (از این پس برای ساخت پروژه هاتون به جای ساخت یک alias جدید کافی یه فولدر در اینجا بسازین و فایل های php و html را مستقیماً توش قرار بدین ) تو این مسیر یک فایل index.php است که این فایل در واقع همان صفحه ی wamp ای است که با تایپ local host ظاهر میشود .این فایل را با notepad یا notepad++ ویرایش کنید بدنبال کد

     $>projectContents .= '<li><a href="'.$file.'">'.$file.'</a></li>'; 

    باشید .این قطعه کد رو به اینصورت عوض کنین :
    $projectContents .= '<li><a href="http://localhost/'.$file.'">'.$file.'</a></li>';


    حال فایل را ذخیره کنین . و wamp را reset کنید .

    پس از سبز شدن wamp عبارت loacal host را تایپ کنید حالا پروژه شما در قسمت your projects قرار دارد با انتخاب آن بایستی مقدار This is First My Site در برازر نمایان شود در غیر این صورت توالی مراحل را به اشتباه انجام دادید .

    دوستان من شاید تا مدتی به خاطر دغدغه های کاری نباشم . من در جلسه ی بعد میخواهم به کدنویسی php بپردازم شما میتوانید خودتان از سایت http://www.w3schools.com این دانش را فرابگیرین ولی اگه نخواستید در

    جلسه ی چهارم وب نویسی با PHP : قسمت دوم

    به این قسمت می پردازم :


    امیدوارم که مطالب مفید بوده باشد به امید استقبال شما عزیزان .
    آخرین ویرایش به وسیله harani : دوشنبه 07 مهر 1393 در 15:14 عصر

  9. #9

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

    در لینوکس ما به جای wamp از lamp استفاده می کنیم چطوری میتونیم یه alias directorie بسازیم؟

  10. #10

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

    لطفا ادامه بدین
    اگه امکانش هست برنامه نویسی با اکلیپس (eclipse) رو هم همراه با وب سرویس بذارید.
    ممنون

  11. #11

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

    جلسه ی چهارم وب نویسی با PHP : قسمت دوم


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

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

    برخی از دوستان سوالاتی از من پرسیدن که من در ابتدا به سوالات دوستان پاسخ میدهم :

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

    یکی دیگر از دوستان در مورد lamp صحبت کردن lamp در واقع همون wamp در محیط سیستم عامل لینوکس هستش باید بگم این سرور مورد علاقه بسیاری از توسعه دهندگان و سازمانهای بزرگ جهانی است مانند یوتوب , ibm و ... من هر چقدر از خوبی آن بگم بازم کم گفتم . ولی دو موضوع یکی اینکه این مطلب موضوع بحث آموزشی ما نیست و متاسفانه من به شخصه با lamp کار نکردم . اما من چند سایت را به شما معرفی میکنم که میتونه شما را راهنمایی کند یا میتوانید در فوروم های زبان php مطلبتان را درج کنید .
    سایت 1: http://www.ibm.com/developerworks/we...p/wa-lamp.html
    سایت 2 : http://lamphowto.com/

    حال برویم سراغ بحث آموزش :

    تا اینجا رسیدیم که قرار شده در پیرامون کدهای php صحبت کنیم . سعی میکنم به صورت مقایسه با جاوا پیش برم که هم درک بهتر باشه هم سریعتر جلو بریم .

    Php همانند python یک زبان توصیفی است بدین معنا که این دسته از برنامه ها برای اجرا شدن نیازی به کامپایل کد ندارند .

    آموزش شروع شد :

    کدهای php باید بین دو تگ


    <?php

    ?>


    باشن .

    ==============================================
    تو جاوا میگیم :



    String a = "salam";

    int b = 2;

    double c = 435.6;



    تو php میگیم



    $a = "salam";

    $b = 2;

    $c = 435.6;



    ==============================================

    تو جاوا میگیم :



    String a = "this is" + "php";

    int a = 2;
    int b = 3;
    int c = a + b;




    تو php میگیم



    $a = "this is" . "php";

    $a = 2;
    $b=3;
    $c=$a+$b;



    تفاوت ها رو خوب بررسی کنید :

    ==============================================
    تو جاوا میگیم :


    String a = "HELLo";

    System.out.print(a);



    تو php میگیم



    $a = "hello";
    echo $a;



    پس echo برای چاپ در php استفاده میشود البته php شاما print هم است شما میتوانید برای چاپ از ان نیز استفاده کنید اما جز مطالب ما نیست .
    ==============================================

    تو جاوا میگیم :


    String a = "Hello world!";
    int b = a.lenght();



    تو php میگیم



    echo strlen("Hello world!");



    ==============================================

    تو جاوا میگیم :


    String a = "Hello world!";
    int b = a.indexOf(world);



    تو php میگیم



    echo strpos("Hello world!","world");




    ==============================================

    تو جاوا میگیم :


    for (int i = 0 ; i <= 10 ;i++){
    System.out.print("The number is: " + i);
    }



    تو php میگیم



    for ($x=0; $x<=10; $x++) {
    echo "The number is: ".$x;
    }




    ==============================================
    تو جاوا میگیم (تعریف متد) :


    public void writeMsg(){
    System.out.print("Hello world");
    }


    تو php میگیم


    function writeMsg() {
    echo "Hello world!";
    }



    متدهای php تایپ بازگشت مثل void , int ,... لازم ندارد .
    ==============================================

    کامنت ها هم دقیقاً مثل همند فقط برای کامنت یه خطی در php میتونید اول خط # بذارید اما از // نیز میتونید استفاده کنید .

    بچه ها تا الان کدها رو دید ما تو جاوا برای تعریف متغیرها باید نوع تایپ آن را مشخص میکردیم ولی در php نیازی به اینکار نیست متغیر در php توسط یک $ تعریف میشود و نوع متغیر وابسته نیست .

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




    <؟php


    //یه آرایه new میکنیم .

    $array1=array();

    // 1 تا 10 رو توش اضافه میکنم :

    for($i=0;$i<10;$i++)
    {
    $array1[]=$i/5;
    }




    یک آرایه رو میتونید نیز new و طرق مختلف آن را مقدار دهی کنید .



    <؟PHP

    $myarray = array();

    $myarray[] = 2;
    $myarray[] = 3;
    $myarray[] = 4;
    $myarray[6] = 2;
    $myarray["hello"] = 2;
    $myarray["hello2"]="substring";
    $myarray["another array"] =array(
    "hello5"=>3,"test"=>"r",3=>5, "For Loop" => $array1
    );

    //$array1 را در کد بالا تعریف کردیم .


    echo json_encode($array);


    ?>



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

    {"0":2,"1":3,"2":4,"6":2,"hello":2,"hello2":"subst ring","another array":{"hello5":3,"test":"r","3":5,"For Loop":[0,0.2,0.4,0.6,0.8,1,1.2,1.4,1.6,1.8]}}

    در این کد باید بگم چیزی را که شما به شکل آرایه انتظار داشتید تحقق نیافت این آرایه به صورت key-value پر شده است . حتی خط آخر کد "Key ، "another array یک value به شکل یک آرایه key-value دارد و در داخل آن یک آرایه دارد $array1 (که در بالاتر با for آن را پر کردیم)

    همانطور که میبیند پر کردن آرایه دست خودمونه هرجوری که خودمون دوست داریم میتونیم آن را پر کنیم . آرایه ای که در داخل {} قرار میگیرد در php در واقع یک شی است


    json_encode متدی در php است که مقدار آرایه را به یک مقدار قابل چاپ تبدیل میکنید چرا که مقدار این شی به خودی خود چاپ نمیشود .

    راستی یه چیز یادم رفت سایز array هم به شکل زیر است :


    $a[0] = 1;
    $a[1] = 3;
    $a[2] = 5;
    $result = count($a);


    دوستان من دغدغه زیادی دارم ممکن است مجدد تا یه مدتی نباشم .

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


    آخرین ویرایش به وسیله harani : چهارشنبه 12 شهریور 1393 در 19:15 عصر

  12. #12

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

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

    من در ادامه ی جلسات بحثای تکمیلی مرتبط به کد نویسی php و ارتباط و استفاده در اندوید رو آموزش میدم ولی باز به استقبال شما دوستان داره .

  13. #13

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

    harani عزیز تنها چیزی که از دست ما بر میاد همین فشار دادن دکمه تشکر هست

    اگر تا حالا پست نذاشتم واسه این بود که نظم تاپیک حفظ بشه

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

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

  14. #14
    کاربر تازه وارد
    تاریخ عضویت
    اردیبهشت 1390
    پست
    44

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

    دوست عزیز harani من شدیدا منتظر ادامه آموزش هستم و بسیار از شما متشکرم.
    من مدتی است دنبال همچین آموزش کامل و جامعی بودم که امروز پست شما رو دیدم و استقبال می کنم .
    ما منتظریم

  15. #15

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

    دوست عزیز لطفا ادامه بدید
    مطلبی که شما مینویسید مطمئنا نه تنها الآن بلکه در آینده بارها با توجه و استفاده ی کاربرانی که درباره ی این مسئله جستجو میکنند مواجه میشه
    امیدوارم که مارو همچنان بهره مند کنید

  16. #16
    کاربر دائمی آواتار NeoFighT
    تاریخ عضویت
    دی 1391
    محل زندگی
    teh
    پست
    295

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

    harani جان ما بی صبرانه منتظر ادامه آموزش هستیم
    لطفا ادامه بدا.

  17. #17

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

    جلسه ی پنجم وب نویسی با PHP : قسمت سوم


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

    در php بالغ بر 9 متغیر Superglobals وجود دارد .
    این متغیر Superglobals بدین معنی که این نوع متغیرها همیشه دردسترس و نامحدود در استفاده در هرجای کد مانند متدها و کلاسها می باشد .
    مهمترین این متغیر ها :

    $_GET برای گرفتن داده و $_POST برای ارسال داده و $_REQUEST می باشد در واقع تلفیق دو متغیر قبلی است .

    برای فهم بهتر پروژه جدید به اسم siteTest ایجاد کنید و کد php زیر را در آن بنویسید :


    <?php
    if (empty($_GET['name'])) {
    $a="empty";

    } else {
    $a = $_GET['name'];
    }

    echo $a;

    ?>


    زمانیکه این کد رو اجرا کنید خروجی شما .empty دیده میشود . به شرط if دقت کنید $_GET['name'] در واقع مقدار name ای است که کاربر ارسال کرده و توسط $_GET['name'] گرفته میشود .

    و empty موجود در شرط if که یک boolean برمیگرداند چک مکیند که کاربر آیا مقداری را وارد کرده است یا خیر .

    دقت کنید در php برای string هم میتونید از "" استفاده کنید هم ''

    در قسمت url برارز نام آدرس ساییتان را میبینید . در جلوی url مقدار زیر را وارد کنید و enter بزنید :

    ?name=ok%20get


    میبینید که مقدار چاپ شده به ok get یک سوالی برای شما پیش میاد و اینکه با خود میگویید من که ok%20get پس چرا به جای %20 مقدار space چاپ شد در پاسخ بایستی گفته شود که شما در url نمیتوانید بظور عادی از برخی کاراکترها نظیر space استفاده کنید و بایستی از URL Encoding Reference استفاده کنید . %20 واقع معادل space در قسمت url است .

    post را بیشتر در اندروید متوجه میشوید . چرا که فرآیند ارسال داده را انجام میدهد .

    REQUEST هم در واقع کار هر دو متغیر فوق رو میکنه . پس بهتره که کلاً به جای get و post از REQUEST استفاده کنیم .

    بریم سراغ دیتابیس :

    برای دیتابیس وارد phpMyAdim در wamp-server (آیکن موجود در نوار وظیفه) شوید .

    دو حالت داره یا مستقیم وارد صفحه ی mysql میشن یا وارد صفحه ای میشن که از شما user pass میخواد اگر user pass خواسته شد . در قسمت user تایپ کنید root و قسمت pass را خالی بذارید و go رو بزنید .

    صفحه ای که شما میبنید صفحه ی mysql است .



    برای ساخت دیتابیس جدید tab مربوط به databse را نام دیتابیس و در قسمت collation باید utf مربوطه رو وارد کنید و برای ما فارسی زبانان مقدار utf8-general-ci بصرفه است .
    دیتابیس ساخته شده در پنل سمت چپ اضافه میشود . بالافاصله از شما میخواهد که یک table بسازید اگر چنین خواسته از شما پرسیده نشد در پنل سمت راست نام دیتابیس را بیابید و گره آن را باز کنید قسمت new را بزنید تا مرحله ساخت table ظاهر شود .

    در این مرحله از شما یک نام و تعداد ستونی که نیاز دارید سوال میشوید آن را پر کنید و go را بزنید .

    از اینجا به بعد دیگه ساخت table دیتابیس که همگی در این زمینه استادند .دیتابیستون حتماً یک id autoincrement داشته باشد . (نام id اختیاری هر چیز میتواند باشد) auto increment هم بصورت (فکر کنم ai در mysql نشون داده شده است .) در این لینک هم میتوانید انواع متغیرهای مربوط به mysql را ببنید http://www.w3schools.com/sql/sql_datatypes.asp

    حال دیتابیسو ساختیم و میخواهیم آن را در php استفاده کنیم کد php آن بدین صورت است .

    برای استفاده mysql در php باسد از توابع mysqli استفاده کنیم .

    PHP MySQLi = PHP MySQL Improved!

    The MySQLi functions allows you to access MySQL database servers.

    به عنوان مثال میخواهیم توسط دستور select تمامی فیلدها را استخراج کنیم کد زیر این کار را میکنید .


    <?php
    $con=mysqli_connect("localhost","root","","my_db") ;
    // Check connection
    if (mysqli_connect_errno()) {
    echo "Failed to connect to MySQL: " . mysqli_connect_error();
    }

    $result = mysqli_query($con,"SELECT * FROM Persons");

    while($row = mysqli_fetch_array($result)) {
    echo $row['FirstName'] . " " . $row['LastName'];
    echo "<br>";
    }

    mysqli_close($con);
    ?>


    در اینجا توسط mysqli_connect ما connection به دیتابیس زدیم که چهار پارامتر میگیرد نام host نام کاربری پسورد و نام دیتابیس

    $con=mysqli_connect("localhost","root","","my_db") ;


    شرط if در خط بعد چک میکنید که آیا ارتباط برقرار شد یا خیر در صورت عدم برقراری عبارت Failed to connect to MySQL: چاپ میشود .

    در خط بعد شما query مورد نظر خودتان را میزنید در اینجا شما بایستی کوئری ها sql را کار کرده باشید .میتوانید از این سایت نیز راهنمایی بگیرید http://www.w3schools.com/sql/sql_select.asp

    و توسط متد mysqli_fetch_array واقع در حلقه مربوطه تمامی اطلاعات کوئری مربوطه را استخراج میکنیم . و مقدار تعریف شده $row در واقع به آرایه تعریف میشود .

    مقدار خروجی در هر بار خواندن بصورت echo $row['FirstName'] . " " . $row['LastName']; بهمراه یک enter چاپ میشود . (FirstName و LastName دقیقاً نام ستونهای دیتابیس هستند ) و در نهایت connecton را میبندیم .

    چیزی که ما میبینیم مثلاً به شکل .

    a b
    c d
    e f
    g h
    اگر توجه کرده باشید ما در دیتابیس تماماً از توابع mysqli استفاده کردیم .

    دیدید که چقدر راحت با دیتابیس کار کردیم .

    جهت تمرین شما تمامی داده های دیتابیس را بگیرید و بصورت یک آرایه نمایش دهید .

    اینهم از این جلسه

    دوستان من فکر کنم که وب دیگه تا اینجا بس است .
    به خاطر دغدغه های کاری شاید تاخیری زیادی بین آموزش بیوفته .
    شما بایستی فقط تمرین و تمرین کنید برای راهنمایی میتوانید از سایت http://www.w3schools.com/PHP/ استفاده نمایید .

    در جلسات بعد شروع به استفاده وب در اندروید میکنیم .

    به امید استقبال شما دوستان .



    آخرین ویرایش به وسیله harani : چهارشنبه 12 شهریور 1393 در 18:43 عصر

  18. #18

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

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

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

  19. #19

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

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

    لطفا در مورد امنیت این وب سرویس ها هم کمی توضیح بدید متشکرم
    وقتی که دیتابیس و وب سایت روی یک وب سایت باشه،اصلا امنیت اتصال نیازی به بررسی نداره چون توی یه سرور اتفاق میفته.مثل نوشتن localhost.
    اگر روی سرور دیگه باشه هم امنیتش ربطی به php نداره.و امنیتش توی یه لایه دیگه انجام میشه.

    در کل php که هزاران ارگان بین المللی از آن استفاده میکنن مشخص است که زبان امنی است . در هر صورت ما داریم برنامه های تحت لوکال میزنیم . تحت هاست هم اگر بگیرید به شما user-pass استاندارد خواهد شد . اگر هم تحت سرور باشه که دیگه دست خودتونه .

    من نباید این را بگویم ولی برنامه هایی که توسط اشخاص نوشته میشود برنامه های کوچک یا در سطح متوسطن اگر هکر امنیتی هم در کار باشد به طبع برنامه ها ما ها را زیر نظر ندارند . قالب برنامه های بزرگ مانند بحث های حساس و کلیدی و برنامه هایی که توسط ارگانهای بزرگ نوشته میشود زیر نظر این گروه افراد قرار میگرند .

    من خودم تا به حال مشکل امنیتی نداشتم ولی اگر این موضوع شما را ناراحت میکند در فوروم های php و یا سایت های گوناگون میتوانید به دنبال خواستتون باشید .

  20. #20
    کاربر تازه وارد
    تاریخ عضویت
    اردیبهشت 1390
    پست
    44

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

    harani عزیز ما همچنان منتظر ادامه آموزش هستیم.
    با تشکر

  21. #21

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

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


    خب در این جلسه میخوام انتظار را پایان بدم و از سایت هایی ایجاد کردیم بتوانیم داده بگیریم .

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

    در ادامه ی آموزش هامون ما یک پروژه ی دفترچه تلفن میسازیم و در اندرویدمان اطلاعات را دریافت و همچنین اطلاعاتی را به سرور ارسال میکنیم . پروژه ما شامل فیلدهای نام , نام خانوادگی , شماره تلفن , نشانی محل سکونت است . هر فیلدی را که شما خواستار آن باشید میتوانید اضافه کنید .
    (عکس
    هم کار خاصی ندارد فقط یکم متفاوت است برای عکس کافی است که آن را در جایی آپلود کنیم و لینک دانلود مسقیم آن را به دیتابیس بدهیم و در اندرویدمان آن را دانلود و در حافظه گوشی ذخیره کنیم فکر کنم متوجه شدید ولی اگر فرصت شد آن را هم میگویم ولی فعلاًٌ بدون عکس پیش میریم)

    خب بریم سراغ برنامه :
    یک پروژه وب با نام TelBook ایجاد کنید .
    در اگر با ساخت پروژه مشکل دارین جلسه ی سوم وب نویسی با PHP را مطالعه کنید .
    بچه ها بیاد داشته باشید که صفحه ی اول php را همیشه با نام index ذخیره کنید .

    خب در phpmy admin مربوط به wamp را انتخاب میکنیم تا وارد صفحه ساخت دیتابیس شویم .
    در tab databse را انتخاب میکنیم تا دیتابیس جدید را ایجاد کنیم . نام دیتابیس را تایپ کرده (مثلاً teldb)
    و در قسمت بعدی utf8-general-ci انتخاب میکنیم .سپس برروی پنل چپ نام دیتابیس ساخته شده را میابید و روی آن کلیک میکنید تا بتوانید جدول آن را بسازید .اسم جدول را نیز teldata میگذارم .و تعداد ستونهای مورد نیاز را برابر 5 قرار میدهیم .



    به ترتیب فیلدها را پر میکنیم
    1- name = person_id / type = mediumint / attributes = unsigned / index = primary /
    و تیک a_I به مهنای auto increment را فعال میکنیم .


    و فیلد 2-3-4 بعدی را به ترتیب برابر person_name , person_family , person_tel بهمراه type برابر با varchar و lenght 255 قرار میدهیم .

    و فیلد آخر هم address و type برابر با Text میگذارید و در نهایت جدول نهایی را save میکنید .

    اگر دوستان در مفاهیم دیتابیس مشکلی دارند این لینک را بررسی کنند http://www.w3schools.com/sql/sql_datatypes.asp

    جدول دیتابیسمون هم ساختیم .حالا میخواهیم چند رکورد به دیتابیسمون اضافه کنیم .
    در پنل سمت چپ در زیر شاخه دیتابسمون جدول ایجاد کرده را انتخاب میکنیم .

    در tab ها browse و structure ,... را بیابید تب insert را انتخاب کنید حال چند رکورد به جدولتان اضافه کنید .
    طبیعتاً چون person_id از جنس autoincrement هست نیازی به پر کردن آن نیست .

    در تب browse میتوانید داده های اضافه شده خودتان را ببینید و آنها را ویرایش و یا حذف و با کپی تهیه نمایید .

    اینهم کمی توضیح بیشتر جلسه قبل برای اونایی که کمی مشکل داشتند .



    حال بریم سراغ فایل php خودمان .

    در این قسمت میام کل داده های دیتابیس را داخل یک آرایه میریزیم و در قالب json چاپ میکنیم .

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


    <?php
    $con = mysqli_connect("localhost","root","","teldb");
    if (mysqli_connect_errno()) {
    echo "Failed to connect to MySQL: " . mysqli_connect_error();
    }
    $result = mysqli_query($con,"select * from teldata");

    $output = array();
    $fetch_data = array();

    while ($row = mysqli_fetch_array($result)){
    $fetch_data['person_id'] = $row['person_id'];
    $fetch_data['person_name'] = $row['person_name'];
    $fetch_data['person_family'] = $row['person_family'];
    $fetch_data['person_tel'] = $row['person_tel'];
    $fetch_data['address'] = $row['address'];

    $output[] = $fetch_data;
    }

    echo json_encode($output);

    mysqli_close($con);


    خروجی که در قسمت localhost دیده میشود به شکل زیر است :(در اینجا تست کنید که بایستی توسط وارد کردن IP شما خروجی ظاهر شود .
    چناچه توسط IP با مشکلی روبرو هستید به جلسه ی دوم مراجعه نمایید)

    [{"id":"1","name":"ehsan","family":"harani","tel":" 09123456789","address":"Address1"},{"id":"2","name ":"Site","family":"BarenameNevis","tel":"091978345 67","address":"mir mojtahedi"}]

    (دوستان ما یک آرایه داریم که هر عضو آن داده های دیتابیس است در واقع [] نشان دهنده ی یک آرایه و {} در واقع یک شی json است .)

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

    برای اینکه خودمان را به عنوان یک کلاینت تعریف کنیم . میگوییم .

    HttpClient client = new DefaultHttpClient();


    در اینجا در مورد DefaultHttpClient باید بگویم برای ساخت یک httpclient باید شی ای را از آن new کنیم ولی خود apache کلاس DefaultHttpClient را ساخته و مقادیر پیش فرض مورد نیاز را در آن قرار داده و شما را از زحمت آن فارغ کرده .

    حال کلاینت مربوطه میخواهد به شیوه ای با سرور ارتباط برقرار کند .دو روش برای ارسال خواسته مان داریم یکی get و دیگری post است . که بهتر است از post استفاده شود چرا که به نوعی get نیز محسوب میشود.

    برای ایجاد یک خواسته به روش post داریم :

    HttpPost post = new HttpPost("http://192.168.2.212/telBook/");


    همانطور که میبینید ما خواسته ی خودمان را از سایتی که ایجاد شد طلب کردیم . در اینجا بایستی از ip خودتان استفاده کنید و ن از localhost دلیلشم هم این است که وقتی که emulator ران میکنیم سایت telBook در emulator موحود نیست و برنامه کرش میکند پس برای همین ip کامپیوتر خودمان را وارد مکنید .

    برای اجرای دستوراتمان از متد execute استفاده مکنیم (مانند اجرای query و دستورات در sql) که این اجرای از جنس HttpResponse می باشد .


    try {
    HttpResponse response = client.execute(post);
    } catch (ClientProtocolException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    } catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }


    این دستور شامل بلاک try-catch است که در catch اول نحوه ی ارتباط نادرست اتفاق میوفتد و در catch بعدی میگوید چنین سایت (مقصدی) وجود ندارد .

    در صفحات اینترنتی چیزی با نام StatusCode وجود دارد درواقع این عدد به شما میگوید که ارتباط شما با وب مربوطه به چه شکل بوده به عنوان مثال شما خطای معروف 404 Not Found را میشناسید که در خواست شما موفقیت آمیز نبوده در این جا 404 Status Code می باشد .مثلاً اگه Status Code 200 باشد . یعنی ارتباط درست و موفقیت آمیز بود . برای اطلاعات بیشتر http://en.wikipedia.org/wiki/List_of_HTTP_status_codes مراجعه کنید .

    برای گرفتن status codes در اندروید میگویم .

    int code = response.getStatusLine().getStatusCode();
    Log.i("Status Code", code + "");


    حال برنامه را اجرا کنید برنامه کرش کرد ;-) چون permission اینترنت ندادی اگه دوباره کرش کرد بایستی کدهای نوشته شده ی بالا را در یک Thraed بیندازید چون thread network متفاوت است با thread برنامه . در نهایت باید در قسمت log ها به رنگ سبز (info) کد 200 را با tag Status Code ببینید خب این جلسه هم تموم شد . جلسه ی بعد نحو ه ی گرفتن داده های وب ایجاد شده را در اندروید را میگم (که من در textview میریزم) به امید استقبال شما دوستان .
    آخرین ویرایش به وسیله harani : پنج شنبه 30 مرداد 1393 در 13:03 عصر

  22. #22

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

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

    وارد بحث گرفتن داده ها از وب سرویس ایجاد شده میشویم .
    یکی از دوستان بپرسیده بود که من زمانی که در دیتابیسم از فارسی استفاده میکنم به شکل ؟؟؟ نشون داده میشود .
    خب در اینجا میخواهیم یکی از فنون آخر بروسلی رو به شما بگم برای رفع این مشکل کافی است بعد از connection تون به صورت زیر عمل کنید



    <?php

    $con = mysqli_connect("localhost","root","","teldb");

    if (mysqli_connect_errno()) {
    echo "Failed to connect to MySQL: " . mysqli_connect_error();
    }
    mysqli_set_charset($con,"UTF8");

    عبارت mysqli_set_charset داده های دیتابیس را به untf8 تبدیل میکند .
    اگر خروجی شما به شکل unicode در آمد مشکلی وجود ندارد چرا که مفسر آن را به این شکل تبدیل کرده است و در اندروید خواهی دید . که داده ها به صورت درست ظاهر میشود .

    تا اینجا دیدم که چحوری توانستیم به وب سرویسمان وصل بشیم .و توسط status code برابر با 200 متوجه شدیم که ارتباط موفقیت آمیز بوده است .
    حال داده هایی را که در دیتابیس ذخیره کردیم میخواهیم مثلاً در یک textview نمایش دهیم .


    پس از قبل داشتیم :


    int code = response.getStatusLine().getStatusCode();
    Log.i("Status Code", code + "");




    در این قسمت ما نیاز به توابعی از HttpResponse با نام getEntity() که در واقع دسترسی به محتوای سایت را برای ما امکان میسازد چیزی شبیه getintent خودمان است و برای اینکه محتویات سایت را ببینیم بایستی متد getcontent که از جنس inputstream هست را فرا بخوانیم .

    پس به زبان کدی داریم

    int code = response.getStatusLine().getStatusCode();

    if (code == 200) {

    response.getEntity().getContent();
    }




    برای آنکه آن این محتوی را داخل ui بیاوریم طبیعتاً بایستی آن را به string تبدیل کنیم . مقدار getcontent(); از جنس inputstream است و تبدیل کردن آن به string نیازمند کار با فایل در جاواست که همگی در آن استادند .اگرم کسی بلد نبود میتونه بصورت کلیشه ای از متد زیر استفاده کنه :


    String StreamToString(InputStream in)
    {
    BufferedReader r = new BufferedReader(new InputStreamReader(in));
    StringBuilder total = new StringBuilder();
    String line;
    try
    {
    while ((line = r.readLine()) != null) {
    total.append(line);
    }
    return total.toString();
    }
    catch (IOException e)
    {
    // TODO Auto-generated catch block
    e.printStackTrace();
    return "";
    }

    }


    پس در نهایت داریم :

    private String result;

    //=============def class=======

    if (code == 200) {

    result = StreamToString(response.getEntity().getContent());
    Log.d("GetText", result);
    }



    الان همینو در textview مربوطه settext کنید چه میبینید ؟ خروجی ما چاپ می شود .اگه برنامه کرش کرد یا permission ندادید یا اینکه باید کدهای net را تو thread بذارید . حال میخواهیم داده ها را به تفکیک بگیریم .
    داده ای که ما داریم به اندروید میفرستیم . به شکل

    [{"id":"1","name":"ehsan","family":"harani","tel ":" 09123456789","address":"Address1"},{"id":"2","name ":"Site","family":"BarenameNevis","tel":"09197 8345 67","address":"mir mojtahedi"}]

    می باشد .
    که ما آن را گرفتیم و در یک string result نمایش دادیم .

    این داده ابتدا با [ و در پایان با ] نشان داده شده است .و هر عضو آن با , جدا شده به این نوع داده JSONArray میگویند . هر عضو داده با } شروع و با { تمام میشود و هر عضو به صورت key-value پر میشود و با , از هم جدا میشود به این نوع داده که بصورت {"key1":"value1","key2":"value2"} نمایش داده میشود JSONObject میگوند . پس JSONArray آرایه ای است که هر عضو آن یک JSONObject است که مابین [] قرار میگیرد .

    اگر پردازش و ظاهر این خروجی json برای شما گیج کننده است میتوانید تو گوگل سرچ کنید json viewer آنگاه هزاران سایت برای شما باز میشود با انتخاب هر کدام شما وارد سایتی میشوید که میتوانید این text ناخوانا را بصورت گرافیکی و خوانا مشاهده نمایید .در اینجا خواهی دید که کاراکترهایی که بصورت unicode در پنجره برازر شما بوده به شکل فارسی رویت میشود .


    حالا که با json آشنا شدیم برای تفکیک داده ی string result از آن استفاده میکنیم .
    خود من میخواهم تمام داده ها را در یک string بریزم شما میتونید آن را در دیتابیس بریزید یا هرجوری که میخواین آن را ذخیره کنید .
    من برای اینکار از متد زیر استفاده میکنم .


    public String getData() {

    final StringBuilder sb = new StringBuilder();
    try {
    JSONArray array = new JSONArray(result);
    for (int i = 0 ; i < array.length() ; i++){
    JSONObject object = array.getJSONObject(i);
    sb.append(object.getLong("person_id"));
    sb.append(object.getString("person_name"));
    sb.append(object.getString("person_family"));
    sb.append(object.getString("person_tel"));
    sb.append(object.getString("address"));


    }
    return sb.toString();

    } catch (JSONException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }

    return null;

    }


    حالا من اینو متد را در یک کنترل تکست ویو settext میکنم . بازم میگم دیگه این قسمت سلیقه ای هر جوری که خواستید میتونید رفتار کنید میتونید برای زیباتر شدن یک structure بسازید و داده ها رو تو دیتابیس بریزید . و مثلاً هر قسمت رو تو یک cell در لیست ویو لود کنید .

    بحث گرفتن داده رو گفتیم فقط میمونه که بحثه ارسال آن نیز را بگیم .

    آخرین ویرایش به وسیله harani : یک شنبه 01 شهریور 1394 در 08:08 صبح

  23. #23

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

    ممنون از شما دوست عزیز
    من خیلی خوشحالم که افرادی مثل شما هستند که اینقدر وقت میگذارند برای آموزش

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

    سپاس

  24. #24
    کاربر تازه وارد آواتار m.a.d1992
    تاریخ عضویت
    دی 1391
    محل زندگی
    زاهدان
    پست
    71

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

    سلام مهندس

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



  25. #25
    کاربر دائمی آواتار Nevercom
    تاریخ عضویت
    دی 1387
    محل زندگی
    بستک
    سن
    35
    پست
    1,118

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

    نقل قول نوشته شده توسط harani مشاهده تاپیک

    یکی از دوستان بپرسیده بود که من زمانی که در دیتابیسم از فارسی استفاده میکنم به شکل ؟؟؟ نشون داده میشود .
    خب در اینجا میخواهیم یکی از فنون آخر بروسلی رو به شما بگم برای رفع این مشکل کافی است بعد از connection تون به صورت زیر عمل کنید
    بعضی وقتا ممکنه تنها با تنظیم Charset مربوط به کانکشن دیتابیس، باز هم حروف درست نمایش داده نشن
    در این حالت خط زیر رو در ابتدای فایلی که قراره نتیجه ی نهایی رو echo کنه قرار بدید:

    header('Content-type: text/html; charset=UTF-8');

  26. #26

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

    یکی از دوستان بپرسیده بود که من زمانی که در دیتابیسم از فارسی استفاده میکنم به شکل ؟؟؟ نشون داده میشود .
    خب در اینجا میخواهیم یکی از فنون آخر بروسلی رو به شما بگم برای رفع این مشکل کافی است بعد از connection تون به صورت زیر عمل کنید
    من بدین صورت عمل می کنم:

    ini_set('default_charset',"UTF-8");
    mysql_set_charset('utf8');
    header('Content-type: text/html; charset=UTF-8') ;


    همچنین قبل از اضافه کردن مقادیربه DB از حرف N استفاده می کنم:

    insert into yourtable (fname) values (N'$fname')

  27. #27

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

    بسیار عالی من از همه ی دوستان درخواست دارم برای بهتر شده آموزش هر کس نکته ای به ذهنش میرسه حتماً بیان کنه

    نقل قول نوشته شده توسط smemamian مشاهده تاپیک
    من بدین صورت عمل می کنم:


    mysql_set_charset('utf8');
    من خودم از توابع mysql استفاده نمیکنم معمولاً از توابع mysqli استفاده میکنم . توابع mysqli در واقع بهینه شده ی mysql است احتمال اینکه داده ها با توابع mysqli مورد injection قرار بگیرد خیلی کمتر از myql است .

    نهایت تشکر از شما دوستان را دارم .

  28. #28
    کاربر دائمی آواتار Nevercom
    تاریخ عضویت
    دی 1387
    محل زندگی
    بستک
    سن
    35
    پست
    1,118

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

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

    موضوع اینه که سرورهای مختلف، کانفیگ متفاوتی دارن و البته ممکنه نسخه های متفاوتی از PHP و Apache و... نصب باشه (یا حتی سیستم عامل ها متفاوت)، این باعث میشه بعضی وقتا در ابتدای پاسخی که دریافت می کنید، کاراکترهایی اضافه بشه که باعث میشه پارس کردن نتیجه (و بخصوص تبدیلش به JSONObject) با مشکل مواجه بشه.
    درمورد من فقط یک کاراکتر اضافه میشد و من این قسمت رو به کدها اضافه کردم:
    final int ascii = out.charAt(0); return ascii >= 33 & ascii <= 126 ? out : out.substring(1);

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

    در PHP اگر قبل از تگ <?Php کاراکتری (مثلاً Space) وجود داشته باشه، باعث میشه اول اون چاپ بشه و بعد خروجی شما که اون هم میتونه مشکل ساز بشه.

  29. #29
    کاربر دائمی آواتار MSHService
    تاریخ عضویت
    آذر 1387
    محل زندگی
    اکنون توی EJB
    پست
    207

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

    من یه سوال دارم تو این مبحث اون قسمت JSON ، اگه داده ها فارسی بوذن اندروید چطور اونا رو نشون بده؟!!

  30. #30

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

    نقل قول نوشته شده توسط MSHService مشاهده تاپیک
    من یه سوال دارم تو این مبحث اون قسمت JSON ، اگه داده ها فارسی بوذن اندروید چطور اونا رو نشون بده؟!!
    اگه متدهای فارسی کردن من
    mysqli_set_charset($con,"UTF8");


    و سایر دوستان پس از connection درج کنید .
    مشکلی از در خصوص نشون دادن فارسی وجود ندارد
    فارسی نشون میده

  31. #31
    کاربر دائمی آواتار gilas1368
    تاریخ عضویت
    فروردین 1389
    محل زندگی
    مشهد
    پست
    1,178

    Question نقل قول: آموزش ساخت وب سرویس و استفاده در اندروید

    کدی ک ب من میده 500ه، دلیلش چیه؟
    البته من دارم از وب سرویسی ک با دات نت نوشتم استفاده میکنم
    آخرین ویرایش به وسیله gilas1368 : سه شنبه 04 شهریور 1393 در 18:10 عصر

  32. #32

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

    نقل قول نوشته شده توسط gilas1368 مشاهده تاپیک
    کدی ک ب من میده 500ه، دلیلش چیه؟
    البته من دارم از وب سرویسی ک با دات نت نوشتم استفاده میکنم
    کد 500 خطای سرور است . اگر شما از هاست استفاده میکنید بهتر است با پشتیبانی هاست خود ارتباط برقرار کنید
    میتوانید از لینک زیر جهت راهنمایی استفاده کنید
    http://www.takwd.ir/joomla/%D8%A2%D9...ver-error.html

  33. #33

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


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

    خب در اینجا نیز بخش پایانی بحث آموزشیمون رو مطرح میکنیم : بحث ارسال داده از دستگاه به وب سایت :

    ارسال داده رو فقط من حالت insert شو میگم که خودتون delete , update , سایر کوئری ها دیگه میتونید مدیریت کنید :

    در این قسمت ما میتوانیم یک فایل جدا php به نام insert (به عنوان مثال) و یا function ای ایجاد کنیم و عملیات اضافه کردنو تو اون بریزیم . بر حسب راحتی و سلیقه هر کدام را که خواستید میتوانید انتخاب کنید : که من روش function ای(همون متد خودمون در php) را انتخاب میکنم :

    کد php من بصورت زیر میشود :


    <?php

    if (isset($_REQUEST['action'])){
    $action = $_REQUEST['action'];
    }else{
    echo "Error";
    exit();
    }

    if ($action=="read"){
    read();
    }else if ($action == "insert"){
    insert();
    }

    function connection(){
    $con = mysqli_connect("localhost","root","","teldb");

    if (mysqli_connect_errno()) {
    echo "Failed to connect to MySQL: " . mysqli_connect_error();
    }
    mysqli_set_charset($con,"UTF8");

    return $con;
    }
    function read(){
    $con = connection();
    $result = mysqli_query($con,"select * from teldata");

    $output = array();
    $fetch_data = array();

    while ($row = mysqli_fetch_array($result)){

    $fetch_data['person_id'] = $row['person_id'];
    $fetch_data['person_name'] = $row['person_name'];
    $fetch_data['person_family'] = $row['person_family'];
    $fetch_data['person_tel'] =$row['person_tel'];
    $fetch_data['address'] = $row['address'];

    $output[] = $fetch_data;
    }
    echo json_encode($output);

    mysqli_close($con);
    }

    function insert(){

    $name = $_REQUEST['person_name'];
    $family = $_REQUEST['person_family'];
    $tel = $_REQUEST['person_tel'];
    $address = $_REQUEST['address'];


    if (!empty($name) && !empty($family) && !empty($tel) && !empty($address)){
    $con = connection();
    $result = mysqli_query($con,"insert into teldata values (0,'$name','$family','$tel','$address')");
    mysqli_close ($con) ;

    }

    }



    ?>



    ببنید من تمامی کدهای بالا را تماماً توضیح دادم اگه جای ابهامی دارین بدانید که تمرین شما کافی نبوده .

    در اینجا isset هم مثل empty که چک مکنه که مقدار ارسالی طرف خالی نباشه :

    فقط یه توضیح مختصر از کد بالا بگم :

    متغیر action را به وب سایت با مقادیر read و یا insert به وب ما میفرستد که اگر این متغیر read باشد متد read و در غیر اینصورت اگر insert باشد متد مربوط به insert نمایش داده میشود .

    در جلسه ی پنجم گفتیم که $_REQUEST در واقع تلفیقی از $_GET و هم $_POST است .
    در لوکال هاست را بالا بیاورید و در قسمت url اضافه کنید :

    ?action=read


    میبینید که تمام داده ها نمایش به شکل json نمایش داده شد .

    حال بیایم سراغ اندروید یک اکتیوتی new کنید و لایوت آن را مثل فرم طراحی کنید (جهت اضافه کردن داده ها به وب پس 4 تا ادیت تکس داریم با یک دکمه send)

    برای ساخت یک json object در php ما چه کار میکردیم ؟(امیدوارم json object و json array را از جلسات پیش بیاد داشته باشید در واقع json object یک آرایه ای بود که بدون هیچ نظم و ترتیبی پر میشد و بصورت json
    encode میشد در جلسه ی قبلی توضیح داده شد)


    مثلاً میگفتیم :

    $arry = array();
    $arry['name']="me";
    $arry[3]=125;
    $arry['code']=200;


    این آرایه چون هیچ نظم خاصی ندارد (یعنی ایندکس هاش از 0 تا n به ترتیب پر نشده) پس این آرایه در واقع یک شی محسوب میشود .

    همین را داشته باشید دقیقاً تو اندروید هم میام به همین صورت عمل میکنیم :

    برای ایجاد یک مقدار key-value از کلاس BasicNameValuePair که در واقع از جنس NameValuePair می باشد (مثل اینکه میگفتیم
     List<?> l = new ArrayList<?>();

    )
    استفاده میکنیم :

    پس از call کردن کنترل هامون تو کلاس activity تو onclick دکمه میگیم :



    NameValuePair name = new BasicNameValuePair("person_name", txtName
    .getText().toString());


    NameValuePair family = new BasicNameValuePair("person_family", txtFamily.getText().toString());

    NameValuePair tel = new BasicNameValuePair("person_tel", txtTel.getText().toString());
    NameValuePair address = new BasicNameValuePair("address", txtAddress.getText().toString());


    حالا قبول دارید که تو php ما این عناصر را در یک آرایه میرختیم که مثلاً میشد :
    {"code":"123","name":"ehsan} ما هم باید یک آرایه ای از key-value ها را پاس بدیم پس یک ArrayList<NameValuePair> باید درست کنیم و مقادیر بالا را توش اضافه میکنیم :

    حال این آرایه ایجاد شده را بایستی به وب پاس بدیم :
    از قبل یادتو هست دو خط کد زیر رو :( من اینا رو جلسات پیش کامل توضیح دادم )

    HttpClient client = new DefaultHttpClient();
    HttpPost post = new HttpPost("http://192.168.2.222/telBook/");


    و در ابتدا با هم دیدم که زمانی که در قسمت url برازر اضافه میکنیم ؟action=read متد read کلاس php مان صدا زده میشد و خروجی json به نمایش در میامد :

    حال متد insert رو در اینجا استفاده مکنیم دقیقاً به همین روش : پس داریم :


    HttpPost post = new HttpPost("http://192.168.2.222/telBook/?action=insert");


    همه چی اماده است که این آرایه پر شده رو به وب پاس بدیم براحتی توسط متد setEntity که بلاک try-catch هست اینکار رو میکنیم :


    HttpPost post = new HttpPost("http://192.168.2.222/telBook/?action=insert");

    try {

    //item = ArrayList<NameValuePair>
    post.setEntity(new UrlEncodedFormEntity(item));
    } catch (UnsupportedEncodingException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }



    از خود میپرسید کلاس UrlEncodedFormEntity چیست جلسه ی پنجم را بیاد آورید گفتم که وارد کردن مقادیری نطیر spce در url امکان پذیر نیست و باید از %20 (
    URL Encoding Reference) استفاده کنیم پس آیا در اندروید راهی وجود ندارد که این کاراکترها رو خودش به طور اتومات جایگذاری کند این همان کاری است که توسط کلاس UrlEncodedFormEntity انجام میشود پس از ارسال داده حتماً mysql مربوط به phpMyadmin wamp رو رفرش و چک کنید که ببنید داده اضافه شده است یا خیر .اگر ok نبود یک جای از مسیر را نادرست رفتید . یادتو باشه که بهتره کدهای نت تون رو تو یک thread بذارید
    delete و update و سایر کوئری هام که دیگه خودتون میتونید بزنید .

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


    و من دو خواسته از دوستان دارم یکی اینکه ذکات علمتون بدید اگه چیزی بلدید و میتونید به دیگران کمک کنید حتماً این کار رو بکنید چرا که واقعاً برکتش به زندگیتون میاد .
    و خواسته دیگم اینکه مباحث این مقاله را حتی شده بارها بارها تمرین کنید تا بتوانید پروژه های سمت وب سرویس هم خودتون handle کنید .
    اگه میخواهید مطالب بیشتری سمت php را فرا یگیرد بهترین رفرنس سایت
    http://www.w3schools.com/PHP/

    می باشد .

    دوستان سلام من شاید خیلی وقت که سر نزدم . که پوزش میطلبم .و مجبور شدم برای اینکه همه باز ببینند آن را در مبحث آموزشی بگنجانم
    خیلی از کدهای گفته شده در اندروید و هم php ورژنهای جدیدتر تقریبا منسوخ شدند شما میتوانید در خصوص مبحث وب سرویس android برای موارد جدیدتر از مفاهیم زیر استفاده کنید .
    ۱- استفاده از HttpUrlConnection / HttpsUrlConnection
    2- استفاده از کتابخانه volley
    3- استفاده از کتابخانه retrofit
    ۴- استفاده از کتابخانه ساده و سربع Fast-Android-Networking

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



    آخرین ویرایش به وسیله harani : شنبه 07 اسفند 1395 در 19:20 عصر

  34. #34
    کاربر دائمی آواتار NeoFighT
    تاریخ عضویت
    دی 1391
    محل زندگی
    teh
    پست
    295

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

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

  35. #35
    کاربر دائمی آواتار c0mmander
    تاریخ عضویت
    اردیبهشت 1393
    محل زندگی
    خونمون D:
    پست
    563

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

    خوب مقاله خوب و کاربردیت به پایان رسید. یک خسته باشید حسابی که داخل این سه مال با توجه به مشغله ها اومدی و زکاتت رو دادی.. خدا قبول کنه.

  36. #36

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

    اگر ارسال اطلاعات به وب سرویس و دریافت اطلاعات ازوب سرویس را درمونو اندروید هم توضیح بدهید ممنون میشم

  37. #37

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

    دوستان اینم سورس مقاله آموزشی اگه خواستید میتونید استفاده کنید . http://uploadazad.com/uploads/tov4_telbook.rar

    نقل قول نوشته شده توسط r_khan مشاهده تاپیک
    اگر ارسال اطلاعات به وب سرویس و دریافت اطلاعات ازوب سرویس را درمونو اندروید هم توضیح بدهید ممنون میشم
    من از مونو استفاده نکردم ولی خود سایت xamarin توضیحاتی در این رابطه داده است این لینک را نگاه کنید . http://developer.xamarin.com/guides/.../web_services/

  38. #38
    کاربر دائمی آواتار NeoFighT
    تاریخ عضویت
    دی 1391
    محل زندگی
    teh
    پست
    295

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

    harani جان اگه میشه یه توضیحه کوچیکی هم در رابطه با برنامه نویسی سوکت بدین.
    سرور چطور میتونه اطلاعاتی رو با استفاده از tcp بفرسته؟
    با تشکر

  39. #39

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

    ارتباط سوکت از طریق دورن شبکه و توسط ip صورت میگرد .
    من لینک زیر را برای راهنمایی بیشتر که توضیحات جامع تری نیز هست پیشنهاد میدهم :
    http://en.wikipedia.org/wiki/Network_socket
    و مثال اندرویدیشم بصورت زیر است :
    http://examples.javacodegeeks.com/an...ocket-example/

  40. #40
    کاربر تازه وارد
    تاریخ عضویت
    اردیبهشت 1390
    پست
    44

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

    ضمن تشکر از harani عزیز بابت آموزش بسیار خوبش من هنوز موفق به دریافت اطلاعات از سرور نشدم و ارور میده(جلسه ششم قسمت اول)
    میشه راجع به thread هم توضیح بدهید من نمی دونم مشکل از کجاست؟؟
    [2014-08-31 10:34:06 - telbook] ActivityManager: Warning: Activity not started, its current task has been brought to the front

صفحه 1 از 3 123 آخرآخر

تاپیک های مشابه

  1. آموزش ساخت plug in با استفاده از Vb.net and C#‎.net
    نوشته شده توسط ghafoori در بخش مقالات مرتبط با Microsoft .Net Framework
    پاسخ: 26
    آخرین پست: شنبه 27 اردیبهشت 1393, 13:55 عصر
  2. آموزش: دانلود فیلم فارسی آموزش ساخت و استفاده از DLL در سی شارپ
    نوشته شده توسط m.webgard در بخش C#‎‎
    پاسخ: 7
    آخرین پست: پنج شنبه 29 اسفند 1392, 23:13 عصر
  3. آموزش: آموزش ساخت آمار سایت با استفاده از گلوبال وذخیره در دیتابیس
    نوشته شده توسط sasanrstm در بخش ASP.NET Web Forms
    پاسخ: 10
    آخرین پست: چهارشنبه 04 دی 1392, 20:38 عصر
  4. آموزش: آموزش ساخت اسلاید شو با استفاده از WebMethod
    نوشته شده توسط fakhravari در بخش ASP.NET Web Forms
    پاسخ: 7
    آخرین پست: پنج شنبه 23 آبان 1392, 20:00 عصر
  5. آموزش:*ساخت فایل XML از روی SQL برای استفاده در asp:menu*
    نوشته شده توسط maxpayn2 در بخش ASP.NET Web Forms
    پاسخ: 11
    آخرین پست: یک شنبه 28 بهمن 1386, 19:42 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •