Просто получите Json, публично опубликованный по HTTPS, в приложении Android на Котлине.Android

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Просто получите Json, публично опубликованный по HTTPS, в приложении Android на Котлине.

Сообщение Anonymous »

Мне нужно сериализовать кучу информации, хранящейся в формате json, по общедоступному URL-адресу.
Я знаю, что могу использовать java.net.URL() для получения Json, и это работает. Но я могу использовать URL() только в неосновном потоке, иначе Android выдаст исключение NetworkOnMainThreadException.
Я не могу понять, как извлечь результат URL( ) изнутри потока. Вот макет того, где я сейчас оказался:

Код: Выделить всё

fun getJsonFromUrl(myUrl: String): String {
var myJson: String = ""
thread {
myJson: URL = URL(myUrl).readText()
}.start()
return myJson
}
Это всегда возвращает пустую строку, поскольку оператор return выполняется до того, как поток фактически завершится (или, возможно, даже запустится). Как заставить эту функцию возвращать значение когда поток завершен? Или, если это плохая идея (я знаю, что потоки не должны ставить приложение в режим ожидания), как сделать это по-другому с помощью URL()?
Я знаю, что уже есть много ТАК вопросов по этому поводу, но я не нашел ничего, что могло бы правильно ответить на этот вопрос. Я также знаю, что существует множество пакетов для управления HTTP GET (Volley, OkHttp,...), но мне не понадобится ничего, кроме этого простого соединения, и я не думаю, что эти пакеты помогут мне понять, как работать в потоках. Я пробовал много вещей, в основном сообщения SO, но это мне совсем не помогло.

Подробнее здесь: https://stackoverflow.com/questions/791 ... -in-kotlin
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Android»