@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.
@elissa
Не забудьте добавить разрешение на доступ к интернету в файле манифеста вашего приложения:
1
|
<uses-permission android:name="android.permission.INTERNET" /> |
Это разрешение необходимо для доступа к сети и выполнения HTTP запросов.