@Warog

Не могу получить JSON при запуске на телефоне. На ПК код работает. В чем же дело?

Моя цель получить JSON для дальнейшей его обработки. При запуске на ПК все работает, но при попытке запустить приложение на телефоне оно прекращает работу. При проверке увидел, что при выполнении программы она доходит до строки c.connect();и сразу прыгает на } finally {, пропуская все строки кода между ними. Не пойму в чем дело.

Вот код :
BufferedReader reader = null;
                try {
                    URL url = new URL("Любой адрес");
                    HttpsURLConnection c = (HttpsURLConnection) url.openConnection();
                    c.connect();
                    reader = new BufferedReader(new InputStreamReader(c.getInputStream()));
                    StringBuilder buf = new StringBuilder();
                    String line = null;
                    while ((line = reader.readLine()) != null) {
                        buf.append(line + "\n");
                    }
                       return(buf.toString());

                    textView.setText(buf);
                } finally {
                    if (reader != null) {
                        reader.close();
                    }
                }

            }catch(IOException e){
                e.printStackTrace();
            }


Заранее спасибо за помощь.
  • Вопрос задан
  • 205 просмотров
Решения вопроса 1
GavriKos
@GavriKos
99% что запускаете в UI-потоке.
В логе должен быть эксепшн что так делать нельзя.
Все операции с сетью делаются только в параллельном потоке. Мануалы в гугле есть, полно.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
zagayevskiy
@zagayevskiy Куратор тега Android
Android developer at Yandex
+1 за UI поток
также нужно указать permission INTERNET в манифесте
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы