У меня есть текстовый файл на моем сервере. Я хочу открыть текстовый файл из своего приложения для Android и затем отобразить текст в TextView. Я не могу найти примеры того, как сделать основное соединение с сервером и подать данные в Строку.
Любая справка, которую можно обеспечить, ценилась бы.
Попробуйте следующее:
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: Getting text from URL)
Должно хорошо работать на Android.
Хотя URL.openStream будет работать, вам лучше использовать библиотеку Apache HttpClient, которая поставляется с Android для HTTP. Среди других причин вы можете использовать с ним кодировку содержимого (gzip), что сделает передачу текстовых файлов намного меньше (лучшее время автономной работы, меньшее использование сети) и быстрее.
Существуют различные способы использования HttpClient, и существует несколько помощников для упрощения работы. См. Этот пост для получения более подробной информации об этом: Проект Android с использованием httpclient -> http.client (apache), метод post / get (и обратите внимание, что HttpHelper, который я там включил, использует gzip, хотя не все) .
Кроме того, независимо от того, какой метод вы используете для получения данных через HTTP, вы захотите использовать AysncTask (или Handler), чтобы не блокировать поток пользовательского интерфейса при выполнении сетевого вызова.
И обратите внимание, что вы почти НИКОГДА не должны просто использовать URL.openStream (без настройки какой-либо конфигурации, например, тайм-аутов), хотя многие примеры показывают это, потому что он будет блокироваться на неопределенный срок, если ваш сервер недоступен (по умолчанию у него нет тайм-аут): URL.openStream () может оставить вас в подвешенном состоянии .