Получение данных с веб-ресурса

Ответить
csq
Сообщения: 3
Зарегистрирован: 13 фев 2012, 13:03

Получение данных с веб-ресурса

Сообщение csq » 13 фев 2012, 13:52

Всем привет.
Наткнулся на сайт, очень полезный. Начал потихоньку практиковаться в разработке. Пытался найти, а как же можно получить информацию с какого-нибудь интернет ресурса. Было бы неплохо посмотреть урок на эту тему, кстати :)
Порыскал в инете, нашел такой вот код

Код: Выделить всё

package ru.webtext.test;

import java.io.BufferedInputStream;
import java.io.InputStream;
import java.net.URL;
import java.net.URLConnection;

import org.apache.http.util.ByteArrayBuffer;

import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;

public class MainActivity extends Activity {
     public void onCreate(Bundle icicle) {
     super.onCreate(icicle);

     /* Прочтенную информацию мы увидим с помощью TextView. */
     TextView tv = new TextView(this);
    
     /* Заполним и покажем данную строку позже на экране */
     String myString = null;
     try {
        /* Определим URL c которого мы загружаем данные */
        URL myURL = new URL(
        		"http://www.anddev.org/images/tut/basic/getdatafromtheweb/loadme.txt");
        /* Открываем соединение с данным URL */
        URLConnection ucon = myURL.openConnection();

        /* Определим InputStreams(входящий поток) для чтения
        * с нашего URLConnection. */
        InputStream is = ucon.getInputStream();
        BufferedInputStream bis = new BufferedInputStream(is);
        
        /* Читаем данные в Buffer until
        * (-1)значит больше нечего читать. */
        ByteArrayBuffer baf = new ByteArrayBuffer(50);
        int current = 0;
        while((current = bis.read()) != -1){
          baf.append((byte)current);
        }

        /* Конвертируем считанные данные в String. */
        myString = new String(baf.toByteArray());
     } catch (Exception e) {
        /* Ошибку мы хотим вывести на дисплей. */
        myString = e.getMessage();
     }
     /* Покажем наш String на экране. */
     tv.setText(myString);
     this.setContentView(tv);
   }
}
пускай хотя бы первоначально к txt файлу обращается, хоть самое простое мне понять. Считал то он нормально, но вскрылась проблема в кодировке, т.е. когда там кодировка cp1251 то отображаются иероглифы.
Как можно указать ему кодировку в которой считывать?

Аватара пользователя
damager82
Администратор
Сообщения: 1383
Зарегистрирован: 07 янв 2012, 11:32
Контактная информация:

Re: Получение данных с веб-ресурса

Сообщение damager82 » 14 фев 2012, 17:04

Используйте этот конструктор
при конвертировании байтов в строку
myString = new String(baf.toByteArray());

Только вот я не помню точное имя кодировки Windows 1251.
win1251, win-1251 или CP1251 ...
Добро пожаловать на форум сайта StartAndroid
ИзображениеИзображение

csq
Сообщения: 3
Зарегистрирован: 13 фев 2012, 13:03

Re: Получение данных с веб-ресурса

Сообщение csq » 16 фев 2012, 08:02

Спасибо помогло, честно говоря думал, что все окажется сложнее :)

Ответить