Android - Leer archivos txt ubicado en un servidor WEB

 
Vista:

Leer archivos txt ubicado en un servidor WEB

Publicado por Dartapan (2 intervenciones) el 06/09/2013 12:44:31
Buenas tardes tras días investigando por la Red en relación a la descarga del contenido de un archivo txt ubicado en una dirección WEB, para incorporarlo a mí aplicación APK los resultados no han sido todo lo positivos que necesito. Por eso solicito la ayuda de alguna persona que pueda reorientar mi problema.
Lo que he conseguido con el código siguiente es establecer la conexión con la dirección de la url, pero la descarga del contenido es la estructura de la página en HTML, y no el contenido del interior del archivo que es lo que yo necesito; por más pruebas que he realizado no lo consigo. ¿Alguien podría ayudarme?. gracias de antemano.:

public class ActivityConectar extends Activity {

ImageView oIV;
String todoTexto = "";

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_activity_conectar);

// se detectan clics en el botón de descarga de texto
Button oBtTexto = (Button) findViewById(R.id.button1);
oBtTexto.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {

String oStr = DescargarTexto("https://www.dropbox.com/s/uni94m6fhpiycy8/Pruebas01.txt");

// busca el control TextView
TextView oTV = (TextView) findViewById(R.id.textView1);

// coloca el texto descargado
oTV.setText(oStr);


}
});

}



private String DescargarTexto(String strUrl){
// Descarga de texto

// se crea un InputStream nulo
InputStream oIS = null;

// se define un buffer de 500 caracteres
int BUFFER = 500;

try{
// se obtiene el stream
oIS = conexionHttp(strUrl);




// caracteres leídos por operación read
int bytesLeidos;
// bufer acumulador de las lecturas


InputStreamReader oISR = new InputStreamReader(oIS);

// se crea un bufer de 500 caracteres
char[] buffer = new char[BUFFER];

try {
// se realiza un bucle
// mientras haya caracteres leídos
while ((bytesLeidos = oISR.read(buffer))>0){

// se mueven los caracteres leídos a la variable String
String strLeido = String.copyValueOf(buffer, 0, bytesLeidos);
// se acumula la lectura
todoTexto = todoTexto + strLeido;
// se limpia el bufer
buffer = new char[BUFFER];
}

oIS.close();

}
catch (IOException ex) {
Toast.makeText(this,ex.getLocalizedMessage(), Toast.LENGTH_SHORT).show();

todoTexto =" "; // error de lectura se devuelve un bufer vacío
}
}
catch (IOException ex){
Toast.makeText(this,ex.getLocalizedMessage(), Toast.LENGTH_SHORT).show();
}

return todoTexto; // se devuelve la cadena de texto
}









private InputStream conexionHttp(String strUrl) throws IOException{

InputStream oIS = null;
int ret = -1;

// se recibe como parámetro la url
// a la que hay que acceder
URL url = new URL(strUrl);

// se crea la conexión
URLConnection oCon = url.openConnection();

// se verifica que la conexión sea HTTP
if (!(oCon instanceof HttpURLConnection))
throw new IOException("No es una conexión HTTP");

try {
HttpURLConnection conHttp = (HttpURLConnection) oCon;
conHttp.setInstanceFollowRedirects(true);
conHttp.setRequestMethod("GET");
conHttp.setAllowUserInteraction(false);
conHttp.connect();

// se obtiene el código de respuesta
ret = conHttp.getResponseCode();
if (ret == HttpURLConnection.HTTP_OK) {

oIS = conHttp.getInputStream(); // si la respuesta es correcta se obtiene el stream
}

}
catch (Exception ex) {
throw new IOException("No estamos conectados");
}

return oIS;

}

}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Leer archivos txt ubicado en un servidor WEB

Publicado por plu (1 intervención) el 16/12/2014 03:47:18
Estoy en el mismo problema, lo lograste, como?
Solo descargo el código HTML y ya intente de todo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar