Lectura de archivos de texto del servidor en Android

Tengo un archivo de texto en mi servidor. Quiero abrir el archivo de texto desde mi aplicación de Android y luego mostrar el texto en un TextView. No puedo encontrar ningún ejemplo de cómo hacer una conexión básica a un servidor y alimentar los datos en una cadena.

Cualquier ayuda que puedas proveer, sería apreciada.

Pruebe lo siguiente:

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) { } 

(tomado de Exampledepot: Obtener texto de URL )

Debería funcionar bien en Android.

Mientras que URL.openStream funcionará, sería mejor utilizar la biblioteca Apache HttpClient que viene con Android para HTTP. Entre otras razones, puede usar encoding de contenido (gzip) con ella, y eso hará que las transferencias de archivos de texto sean mucho más pequeñas (mejor duración de la batería, menos uso de la red) y más rápido.

Hay varias maneras de usar HttpClient, y existen varios ayudantes para envolver y facilitar las cosas. Consulte esta publicación para obtener más detalles al respecto: proyecto Android usando httpclient -> http.client (apache), método post / get (y tenga en cuenta que el HttpHelper que incluí allí sí que usa gzip, aunque no todos lo hacen).

Además, independientemente del método que utilice para recuperar los datos a través de HTTP, querrá utilizar AysncTask (o Handler) para asegurarse de no bloquear el subproceso de la interfaz de usuario mientras realiza la llamada de red.

Y tenga en cuenta que prácticamente NUNCA debe usar URL.openStream (sin establecer alguna configuración, como los tiempos de espera), aunque muchos ejemplos lo muestran, porque se bloqueará indefinidamente si el servidor no está disponible (de manera predeterminada, no tiene tiempo de espera): URL.openStream () puede dejarte colgando .

No olvide agregar permisos de Internet al manifiesto al tomar recursos netos: (agregar en manifiesto).