Как получить json с сайта в android приложении?

Пользователь

от elissa , в категории: Другие , 6 месяцев назад

Как получить json с сайта в android приложении?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от magali , 6 месяцев назад

@elissa 

Для получения JSON с сайта в Android приложении можно использовать классы HttpURLConnection или OkHttpClient для отправки HTTP запроса на сервер и получения ответа в виде JSON.


Пример с использованием HttpURLConnection:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
try {
    // Создаем URL объект с URL-адресом сайта
    URL url = new URL("http://example.com/api/data");

    // Открываем соединение с сервером
    HttpURLConnection connection = (HttpURLConnection) url.openConnection();

    // Устанавливаем метод запроса на GET
    connection.setRequestMethod("GET");

    // Получаем код ответа от сервера
    int responseCode = connection.getResponseCode();

    // Если код ответа 200 (успешный), считываем данные из потока
    if (responseCode == HttpURLConnection.HTTP_OK) {
        // Получаем входной поток для чтения данных
        InputStream inputStream = connection.getInputStream();

        // Создаем BufferedReader для чтения текста из потока
        BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));

        // Создаем StringBuilder для построения строки из текста
        StringBuilder response = new StringBuilder();
        String line;

        // Читаем построчно текст из потока и добавляем в StringBuilder
        while ((line = reader.readLine()) != null) {
            response.append(line);
        }

        // Закрываем потоки
        reader.close();
        inputStream.close();

        // Получаем JSON строку с сайта
        String jsonResponse = response.toString();

        // Теперь можно работать с полученным JSON
        // Например, можно преобразовать его в объекты с помощью библиотеки Gson
        // или использовать JSONObject для работы с JSON данными
    }

    // Закрываем соединение
    connection.disconnect();
} catch (IOException e) {
    e.printStackTrace();
}


Пример с использованием OkHttpClient и его встроенным классом Response:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
try {
    // Создаем объект OkHttpClient
    OkHttpClient client = new OkHttpClient();

    // Создаем запрос GET с URL-адресом сайта
    Request request = new Request.Builder()
            .url("http://example.com/api/data")
            .build();

    // Выполняем запрос
    Response response = client.newCall(request).execute();

    // Проверяем успешность выполнения запроса (код 200)
    if (response.isSuccessful()) {
        // Получаем тело ответа в виде строки
        String jsonResponse = response.body().string();

        // Теперь можно работать с полученным JSON
        // Например, можно преобразовать его в объекты с помощью библиотеки Gson
        // или использовать JSONObject для работы с JSON данными
    }
} catch (IOException e) {
    e.printStackTrace();
}


Обратите внимание, что эти примеры выполняются в основном потоке, поэтому при реализации в реальном проекте рекомендуется использовать асинхронные запросы, например, с помощью AsyncTask или библиотеки Retrofit.