Подтвердить что ты не робот

Чтение текстового файла с сервера на Android

У меня есть текстовый файл на моем сервере. Я хочу открыть текстовый файл из своего приложения для Android, а затем отобразить текст в TextView. Я не могу найти примеры того, как сделать базовое соединение с сервером и передать данные в строку.

Любая помощь, которую вы можете предоставить, будет оценена.

4b9b3361

Ответ 1

Попробуйте следующее:

try {
    // Create a URL for the desired page
    URL url = new URL("mysite.com/thefile.txt");

    // Read all the text returned by the server
    BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream()));
    String str;
    while ((str = in.readLine()) != null) {
        // str is one line of text; readLine() strips the newline character(s)
    }
    in.close();
} catch (MalformedURLException e) {
} catch (IOException e) {
}

(взято из Exampledepot: Получение текста из URL)

Хорошо работает на Android.

Ответ 2

В то время как URL.openStream будет работать, вам будет лучше использовать библиотеку Apache HttpClient, которая поставляется с Android для HTTP. Среди других причин вы можете использовать кодировку содержимого (gzip) с ней, что значительно сократит передачу текстовых файлов (улучшит время автономной работы, меньше использования сети) и быстрее.

Существуют различные способы использования HttpClient, и существует несколько помощников, чтобы обернуть вещи и упростить их. Подробнее см. Это сообщение: Android-проект с использованием httpclient → http.client(apache), метод post/get (и обратите внимание, что HttpHelper, который я включил там, использует gzip, хотя не все).

Кроме того, независимо от того, какой метод вы используете для извлечения данных через HTTP, вы хотите использовать AysncTask (или обработчик) для не блокируйте поток пользовательского интерфейса при выполнении сетевого вызова.

И обратите внимание, что вы почти ничего не должны использовать URL.openStream(без настройки какой-либо конфигурации, например, тайм-аутов), хотя многие примеры показывают это, потому что он будет блокироваться бесконечно, если сервер недоступен (по умолчанию у него нет timeout): URL.openStream() может оставить вас висящим.

Ответ 3

Не забудьте добавить разрешения Интернета к манифесту при использовании сетевых ресурсов: (добавить в манифест).