به نام خدا، سلام، در جلسه قبلی یک api service با php ایجاد کردیم که می توانستیم از طریق آن پست های حدید داخل پایگاه داده ذخیره کنیم و با فرمت json به کاربر برگردانیم. در این جلسه قصد داریم پست های ایجاد شده در سرور را داخل اپ نمایش دهیم.
مطالب مطرح شده در این جلسه عبارتند از :
- اضافه کردن فایل جدید برای برگرداندن پست های سرور به اپ
- دریافت اطلاعات از سرور با volley
- نمایش اطاعات داخل صفحه آخرین اخبار
:: توجه
این مطلب یک جلسه از آموزش برنامه نویسی اندروید می باشد و برای مشاهده آن باید در دوره ثبت نام کنید.
سلام استاد من میخوام روی هاست خودم تست کنم …مشکلی پیش نمیاد ؟ (منظورم لوکال هاست نیست,یه هاست خریدم )
سلام نه، چه مشکلی می خواد داشته باشه آخه 🙂
این انتقال لوکال هاست به وب سرور رو در ادامه جلسات همین دوره پیاده سازی کردید؟
یا اینکه جای خاصی میتونید معرفی کنید ک بطور اصولی این کارو آموزش داده باشه؟
خب ،راه حلش چیه؟
هر گوشی یک ایپی مخصوص به خود داره
پس نمیتونیم همشونو پوشش بدیم.
آخه این مشکل بزرگی نیست، چون می تونید موقع تست اپلیکیشن فقط از یک شبیه ساز استفاده کنید تا زمانی که Feature ها هنوز تکمیل نشده، بعد که اوکی شد لوکال هاستتون رو می برید روی وب سرور و با همه دیوایس ها تست های نهایی رو انجام می دید
با سلام و عرض ادب
کد مربوط به این جلسه رو بطور کامل نوشتم این کد روی شبیه ساز جنی موشنم کامل و درست اجرا میشود.
اما در گوشی اندرویدی از طرف جیسون خطایی بصورت زیر برای برنامه من ارسال میشود:
com.volley.NoConnentionError:java.net.SocketException:recvform failed:ECONNRESET(Connection reset by peer)
ممنون میشم اگر بتونید دررفع این مشکل کمکم کنید.
سلام، خب کاملا مشخصه. دلیل این مشکل این هست که گوشی شما سرور رو نمی تونه ببینه ولی شبیه ساز تونسته. دلیلش مشکلات شبکه هست. مثلا اینکه رنج آیپی گوشی و سرورتون یکی نیست.
سلام خسته نباشید من api service دریافت کردم و طبق آموزش های شما در برنامه ازش استفاده کردم چند بار هم چک کردم کدها شبیه کدهای شما بود ولی وقتی run میکنم اکتیویتی خالی نمایش داده میشه در صورتی که از datafake استفاده میکردم نمایش می داد و اینکه نتونستم کتابخونه پیکاسورو آنلاین اضافه کنم و از روش آفلاین استفاده کردم ولی در قسمت dependencies اضافه نشد ولی تونستم از پیکاسو تو کدهام استفاده کنم میشه راهنماییم کنید که ایراد ازکجا میتونه باشه؟
و یه سوال دیگه اینکه ip server همون ، ip کامپیوتر خودمون میشه?یا همون 127.0.0.1 بزاریم?سرور الان اپاچی هست نه pc خودمون که بخوایم ip کامپیوتر بدیم درک نمیکنم این قسمت رو
اگه می خواید از شبیه ساز به سرور خودتون وصل بشید، باید از آیپی 10.0.2.2 استفاده کنید.
با کدهای php اصلا نتونستم پایگاه داده و جدول ایجاد کنم ارور not found میداد، به صورت دستی داخل phpmyadmin, پایگاه داده و جدول رو ساختم به کمک کد ها تونستم به پایگاه داده وصل بشم و api servies بگیرم و تو کدهام استفاده کنم ولی اکتیوتی خالی نشون میده، میتونه اشکال از اینجا باشه که دستی ساختم پایگاه داده رو?
سلام، ابتدا داخل PostMan تست کنید که api درست کار می کنه یا نه، اگه اوکی بود، حتما مشکل از سمت اپلیکیشن هست و باید اپلیکیشن رو دیباگ کنید تا ببینید مشکل از کجاس
سلام وقت بخیر. باید هر جا که مشکل و یا اروری هست اسکرین شات بدید که بتونم راهنمایی کنم. اینکه از api چیزی دریافت نمی شه دلایل مختلفی می تونه داشته باشه مثل:
1. خطای سروری یا 500. یعنی به هر دلیلی مشکلی سمت سرور بوجود اومده
2. مشکلات شبکه ای. یعنی دستگاه اندروید شما نتونسته به سرور متصل بشه
3. خطای سمت کلاینت یعنی شما. ممکنه اطلاعات از سرور به درستی دریافت شده باشن ولی سمت کد شما مشکلی وجود داشته باشه
برای اینکه بدونید دقیقا مشکل شما الان چی هست بایستی از ابزار دیباگ استفاده کنید
سلام استاد وقتتون بخیر
ip کارت شبکه ام رو 10.0.2.2 کنم؟
یا ip برای image_url تو دیتابیس رو 10.0.2.2 کنم؟ یا باید جای دیگه ای اینکار رو بکنم؟
ip کارت شبکه ام رو 10.0.2.2 کردم
و تمام ip image_url ها دیتابیسم ام رو 127.0.0.1 کردم یعنی(127.0.0.1/7learn/uploads/pic….jpg) و تو IDE اینکار رو کردم (replace(“127.0.0.1″,”10.0.2.2” بازم تصویرا لود نشدن
تمام ip image_url ها دیتابیسم ام رو 127.0.0.1 کردم و تو ()IDE replace رو حذف کردم بازم تصویرا لود نشدن
تمام ip image_url ها دیتابیسم ام رو http://localhost کردم یعنی(http://localhost/7learn/uploads/pic…jpg) و تو IDE اینکار رو کردم (replace(“localhost”,”10.0.2.2″ بازم تصویرا لود نشدن
آخرشم
تمام ip image_url ها دیتابیسم ام رو 10.0.2.2 کردم یعنی(10.0.2.2/7learn/uploads/pic…jpg) و تو IDE اینکار رو کردم (replace(“10.0.2.2″,”10.0.2.2” بازم تصویر لود نشد یه بار دیگه ()replace رو حذف کردم بازم اتفاقی نیفتاد
ممنون میشم راهنماییم کنید
هر ip که بخوای به localhost شما اشاره کنه باید 10.0.2.2 باشه
سلام استاد
عکسها رو تو پایگاه داده آپلود کردم ولی وقتی اندروید استودیو رو اجرا میکنم همه نوشته ها رو بالا میاره جز عکسا
هم با کدهای خودم امتحان کردم هم با کدهایی که شماگذاشته بودید
ممنون میشم راهنماییم کنید
مجددا سلام استاد
این error رو میده
سلام وقت بخیر، این مشکل به دلیل این هست که نمی تونه به سرور شما متصل بشه. اگه می خواید به سرور لوکال هاست از شبیه ساز دسترسی داشته باشید باید از ip 10.0.2.2 استفاده کنید.
سلام، مشکل این هست که دستگاه اندرویدی که دارید روش تست می کنید آدرس سرور شما رو پیدا نمی کنه
سلام وقت بخیر، شما باید یک breakpoint داخل متد onResponse و onError بگذارید و اونجا چک کنید که مشکل از کجاست. این لاگی که الان گذاشتید عملا هیچ کمکی نمی کنه