Lectura de Archivos de Texto Desde el Servidor en Android


Tengo un archivo de texto en mi servidor. Quiero abrir el archivo de texto desde mi aplicación Android y luego mostrar el texto en una vista de texto. 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 pueda proporcionar será apreciada.

Author: Chris, 2010-05-27

3 answers

Intente 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: Getting text from URL )

Debería funcionar bien en Android.

 56
Author: aioobe,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-05-27 15:12:11

Mientras URL.openStream funcionará, sería mejor usar la biblioteca HttpClient de Apache que viene con Android para HTTP. Entre otras razones, puede usar content encoding (gzip) con él, 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ápidas.

Hay varias maneras de usar HttpClient, y existen varios ayudantes para envolver cosas y hacerlo más fácil. Ver este post para más detalles sobre eso: Proyecto Android usando httpclient > > http.cliente (apache), método post / get (y tenga en cuenta que el HttpHelper que incluí allí usa gzip, aunque no todos lo hacen).

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

Y tenga en cuenta que casi nunca debe usar la URL.openStream (sin establecer alguna configuración, como tiempos de espera), aunque muchos ejemplos lo muestran, porque se bloqueará indefinidamente si el servidor no está disponible (por defecto, no tiene tiempo de espera): URL.openStream () Podría Dejarte Colgado.

 14
Author: Charlie Collins,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-23 10:31:04

No olvide agregar permisos de Internet al manifiesto cuando tome recursos de red: (agregar manifiesto).

 5
Author: baron_bartek,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-10-31 09:09:55