سلام و خسته نباشید به همگی
من میخواستم به وب سرویسم درخواست بفرستم به این صورت که چندین سطر دارم تو دیتابیسم میخوام این سطر ها رو بفرستم به web api
اینا رو باید تبدیل کنم به جیسون بفرستم یا نه تک به تک بخونم از دیتابیس به صورت تکی بفرستم ؟
سوال دومم این هست چطور میتونم درخواستم رو به صورت غیر همزمان بفرستم یعنی درخواست اولم بره response برگرده و درخواست دوم ارسال بشه ؟یعنی درخواست بعدی بعد نتیجه گرفتن از درخواست قبلی اجرا بشه؟
(برای سوال دومم request ام رو گذاشتم داخل While ولی منتظر نمیمونهResponse برگرده از سرور )
لایبرریم هم okhttp هست ممنون میشم راهنمایی کنین
معمولا Web Service نتیجه رو به صورت Json برمیگردونه. چون خروجی جیسون یک خروجی استاندارد هست که برای همه Device ها و اپلیکیشن ها قابل دریافت و قابل فهم هست. شما باید کل اطلاعاتی رو که میخواید از طریق وب سرویس ارسال کنید از دیتابیس بخونید و همه رو در قالب جیسون ارسال کنید. به مثال زیر دقت کنید
HttpClient httpClient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost(
"https://api.dailymile.com/entries.json?oauth_token="
+ token);
httpPost.setHeader("content-type", "application/json");
JSONObject data = new JSONObject();
data.put("message", dailyMilePost.getMessage());
JSONObject workoutData = new JSONObject();
data.put("workout", workoutData);
workoutData.put("activity_type", dailyMilePost.getActivityType());
workoutData.put("completed_at", dailyMilePost.getCompletedAt());
JSONObject distanceData = new JSONObject();
workoutData.put("distance", distanceData);
distanceData.put("value", dailyMilePost.getDistanceValue());
distanceData.put("units", dailyMilePost.getDistanceUnits());
workoutData.put("duration", dailyMilePost.getDurationInSeconds());
workoutData.put("title", dailyMilePost.getTitle());
workoutData.put("felt", dailyMilePost.getFelt());
StringEntity entity = new StringEntity(data.toString(), HTTP.UTF_8);
httpPost.setEntity(entity);
HttpResponse response = httpClient.execute(httpPost);
برای ارسال اطلاعات به صورت ناهمزمان بهتره کلاس خودتون رو به صورت Async تعریف کنید. مثال های زیادی توی اینترنت برای این کار هست
class AsynTask extends AsyncTask<Void, Void, String>{}
در مورد AsyncTask و RxJava تحقیق کنید. البته AsyncTask از اندروید 11 دیگه Deprecate شده و گوگل پیشنهاد داده از کلاس خود جاوا استفاده بشه. توضیحات سایت Developer اندروید رو بررسی کنید:
تاریخ :
1398/08/20
- ساعت :
02:43:00 AM
- بازدید :
6082
- پاسخ :
5
|
تاریخ :
1398/08/14
- ساعت :
12:03:00 AM
- بازدید :
2973
- پاسخ :
1
|
تاریخ :
1398/08/14
- ساعت :
12:10:00 AM
- بازدید :
4234
- پاسخ :
1
|
تاریخ :
1399/07/10
- ساعت :
01:11:00 AM
- بازدید :
2808
- پاسخ :
4
|
تاریخ :
1399/08/22
- ساعت :
07:24:00 PM
- بازدید :
3605
- پاسخ :
2
|
تاریخ :
1399/12/24
- ساعت :
09:34:00 PM
- بازدید :
2612
- پاسخ :
1
|
تاریخ :
1400/02/29
- ساعت :
09:58:00 AM
- بازدید :
3510
- پاسخ :
2
|
تاریخ :
1398/07/29
- ساعت :
10:19:00 PM
- بازدید :
2605
- پاسخ :
3
|
تاریخ :
1399/06/06
- ساعت :
04:03:00 PM
- بازدید :
4337
- پاسخ :
1
|
تاریخ :
1399/06/04
- ساعت :
02:25:00 PM
- بازدید :
4146
- پاسخ :
2
|
تاریخ :
1403/08/29
- ساعت :
07:15:00 PM
- بازدید :
49
- پاسخ :
0
|
تاریخ :
1403/08/18
- ساعت :
10:40:00 AM
- بازدید :
88
- پاسخ :
0
|
تاریخ :
1402/07/23
- ساعت :
04:01:00 PM
- بازدید :
1031
- پاسخ :
1
|
تاریخ :
1403/05/30
- ساعت :
09:22:00 AM
- بازدید :
426
- پاسخ :
1
|
تاریخ :
1402/08/01
- ساعت :
06:25:00 PM
- بازدید :
930
- پاسخ :
1
|
تاریخ :
1402/08/16
- ساعت :
10:38:00 AM
- بازدید :
1346
- پاسخ :
1
|
تاریخ :
1398/08/17
- ساعت :
01:27:00 AM
- بازدید :
4796
- پاسخ :
1
|
تاریخ :
1402/09/08
- ساعت :
07:34:00 PM
- بازدید :
1156
- پاسخ :
1
|
تاریخ :
1402/09/21
- ساعت :
11:10:00 PM
- بازدید :
594
- پاسخ :
1
|
تاریخ :
1403/07/27
- ساعت :
03:21:00 PM
- بازدید :
205
- پاسخ :
1
|