ارسال یا دریافت عکس با والی!

پرسیده شده
فعالیت 1485 روز پیش
دیده شده 1135 بار
2

سلام استاد شاهینی عزیز

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

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

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

سوال سوم ابزار پست من ایا تدریس خواهد شد؟

فایل پیوست

پوریا شفیعی
پوریا شفیعی

15 فروردین 99

4
حذف شده

سلام.

request ها  و response هایی که بین سرور و کلاینت اتفاق میفته بصورت stream یا جریانی از داده های دو دویی عملا اتفاق میوفته. بنابراین فرقی نمیکنه که ما یک تصویر یا فایل یا یک رشته و ... رو دریافت یا ارسال کنیم.

مثلا یک request میزنیم به یک url و چیزی که اتفاق میوفته اینه که سرور، ریکوئست رو دریافت کرده و کلاینت منتظر جواب سرور هست. سرور درخواست رو پردازش میکنه و جواب رو بعنوان response برمیگردونه.

 

دو تا مثال:

مثال ۱: مثلا شما به آدرس http://expertdevelopers.ir/api/v۱/experts/student ریکوئست رو ارسال میکنید. پس از پردازش درخواست، وب سرور پاسخ مناسب رو برمیگردونه. اینجا داده هایی از نوع جیسون بعنوان پاسخ برمیگرده.(برنامه نویس خروجی با فرمت Json رو تعیین کرده. حتی میتونست قالب خروجی، جیسون نباشه و یک رشته ساده باشه...)

 

مثال ۲: یا مثلا به ادرسی ریکوئست میفرستید که آدرس یک فایل(مثل تصویر) روی سرور اشاره میکنه. سرور همون داده های فایل رو بعنوان پاسخ برمیگردونه.

 

در مثال ۱ وقتی جریان داده های باینری به عنوان پاسخ به کلاینت(اینجا اپ اندروید) برمیگردد، نیاز داریم stream(اصطلاحا InputStream) رو تبدیل به string کنیم تا بتونیم محتوای json رو پردازش کنیم. (بخاطر اینکه پاسخ دریافتی خام هست و قسمت هایی از داده های دودویی است که باید در کنار هم قرار بگیرند.)

 

در مثال ۲، اگر فایلی رو اصطلاحاً دانلود کنیم، بهمون شکل دریافتی اونهارو میریزیم(write میکنیم) داخل output که از نوع FileOutputStream هست و ذخیره میکینم در محلی از حافظه گوشی و زمانی که کاربر فایلو باز کنه، خوندن فایل، وظیفه OS گوشیه و سیستم عامل تشخیص میده که این فایل از چه type ایه.

 

* تمام این سازو کارها در بکگروند Volley انجام میشه و با توجه به سرفصل ها، دانلود و آپلود در فصل مدیریت فایل تدریس میشه.

 

در مورد تبدیل عکس به جیسون هم بگم، ما عکس رو در قالب جیسون ارسال نمیکنیم بلکه(مثلا در مثال ۱) در کنار بقیه ی فیلدهای student(مثل id, first_name, ...) نام عکس یا آدرسی از عکس یا فایل رو در قالب جیسون میریزیم و ارسال میکنیم و وقتی کلاینت محتوای جیسون رو دریافت کرد، مثلا image_url هر student رو خونده و عمل دانلود فایل(مثال ۲) رو انجام میده و بعد ازین که دانلود کامل شد، داخل کد میگیم که تصویر کاربر رو در ImageView مخصوصش نمایش بده.

فایل پیوست

محسن موحد

توسط

محسن موحد

16 فروردین 99