Как оптимизировать использование сетевых данных, когда я получу массив JSON с Volley?

Я занимаюсь разработкой приложения для Android, которое получает данные из MySql с помощью скрипта PHP. Я использую залп для запроса, это код на стороне клиента, который работает хорошо.

Volley.newRequestQueue(this).add(new StringRequest(Request.Method.POST, url,
            new Response.Listener<String>() {
                @Override
                public void onResponse(String response) {
                    try {
                         JSONArray jsonArray = new JSONObject(response).getJSONArray("MyArrayName");
                        for (int i = 0; i < jsonArray.length(); i++) {
                            JSONObject object = jsonArray.getJSONObject(i);
                            list.add(object.getString(Keys.PHRASE));
                            adapter.notifyDataSetChanged();
                        }
                    } catch (JSONException e) {
                        e.printStackTrace();
                    }
                }
            }, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {
        }
    }));
}

И это мой PHP-скрипт для получения данных из базы данных MySql ($limit is 30)

<?php
header('Content-Type: application/json;charset=utf-8');
require_once('connection.php');
mysqli_set_charset($conn, 'utf8');

$category=$_GET['category'];
$from = $_GET['from'];
$limit= $_GET['limit'];
$language = $_GET['language'];

// Seed
$today = new DateTime();
$today->setTime(0,0);
$seed = date_timestamp_get($today);
$sql = "SELECT * FROM $language WHERE Category='$category' ORDER BY RAND($seed) LIMIT $from, $limit"; //LIMIT is 30

$rows = array();
$result = mysqli_query($conn, $sql);
while($r = mysqli_fetch_assoc($result)) {
    $rows[] = $r;
}
echo json_encode(array('Data' => $rows), JSON_UNESCAPED_UNICODE);
mysqli_close($conn);
?>

Это ответ, я получил массив json около 4000 символов (в данном случае), в общем, общая длина массива (всего символов, а не элементов) составляет от 3000 до 5000 символов. отклик

Моя проблема заключается в использовании данных приложения Android, это то, что я вижу в профилировщике Android: использование данных Я загружаю около 20 КБ для каждого запроса, чтобы получить около 3000/5000 символов, я новичок с Android и сети, но я думаю, что это много. Я хочу минимизировать использование данных. Любые советы или решение? Благодарю.

0 ответов

Другие вопросы по тегам