ارسال پارامتر به سرور توسط volley
سلام دوستان
برای ارسال پارامتر به سرور توسط volley به این شکل عمل می کردیم:
آرایه params رو می ساختیم:
private static Map<String, String> params = new HashMap<String, String>();
مقادیری که مد نظرمون بود رو ارسال می کردیم:
params.clear();
params.put("name", name);
params.put("family", family);
تابع ارسال پارامتر رو اضافه می کردیم:
@Override
protected Map<String, String> getParams() {
return params;
}
سمت سرور هم به این شکل GET می کردیم:
$name = $_REQUEST['name'];
$family = $_REQUEST['family'];
سوالم اینه که چطور می تونیم آرایه ای از مقادیر رو به همین شکل به سرور بفرستیم و دریافت کنیم؟
من یک لیست از نام و نام خانوادگی دارم که باید بعد از ثبت همه آنها، به سرور ارسال کنم ولی راه اون رو نمی دونم.
لطفا راهنمایی کنید
سپاس
سمت سرور رو به این صورت کار کنید : از طرف کلاینت JSONArray بگیرید و بصورت زیر اونو به آرایه در php تبدیل کنید
$phone = $_REQUEST['phone'];
$phone = json_decode($phone);
if (empty($phone)) {
$phone = array();
}
حالا چطوری JSONArray سمت کلاینت ساخته و ارسال بشه ؟ به شکل زیر :
JSONArray jsonPhone = new JSONArray();
for (String number: phone) {
jsonPhone.put(number);
}
ارسال به سرور :
.data("phone", jsonPhone.toString())
خب الان کدتون رو نگاه کردم متوجه شدم که دارید دوتا ارایه جدا میفرستید که اسم کوچیک جدا هست و اسم بزرگ هم جدا
بهتره که بصورت زیر جیسون رو بسازید:
[{"name":"ali","family":"alinejad"},{"name":"hamid","family":"hamidi"}]
برای ساخت این جسون سمت اندروید به این شکل میشه
JSONArray names = new JSONArray();
for (loop) {
JSONObject jsonPerson = new JSONObject ();
jsonPerson.put("name",NAME)
jsonPerson.put("family",FAMILY)
names.put(jsonPerson);
}
من یک حلقه درست کردم و داده هارو به شکل زیر وارد کردم:
try {
JSONArray persons = new JSONArray();
for (int i = 0; i< G.persons.size(); i++) {
JSONObject jsonPerson = new JSONObject ();
jsonPerson.put("person_name", G.persons.get(i).name);
jsonPerson.put("person_family", "" + G.persons.get(i).family);
persons.put(jsonPerson);
}
} catch (JSONException e) {
e.printStackTrace();
}
populateWebInsert();//در اینجا تابع ارسال مقادیر و ثبت در دیتابیس وارد شده
الآن این مقادیر رو بصورت POST چطوری باید ارسال کنم؟
قبلا یه تابع به صورت زیر وارد می کردیم و مقادیر ارسال می شدند:
@Override
protected Map<String, String> getParams() {
return params;
}
ولی الآن نمی دونم دقیقا به چه صورته؟
سمت سرور هم باید حلقه وارد کنیم تا تک تک مقادیر رو بگیریم؟
من این کدهارو وارد کرده ام:
$name = $_REQUEST['person_name'];
$family = $_REQUEST['person_family'];
mysqli_query($connection, "INSERT INTO person VALUES (0, '$name', 'family')");
هدفم از کدهای php اینه که یکی یکی داده ها دریافت کنم و ثبت کنم. نمیدونم درست وارد شده یا نه!
سپاس
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .