как загрузить большую веб-страницу в строку - PullRequest
0 голосов
/ 04 сентября 2011

Я новичок в Java и Android, но не в программировании и HTTP.Этот метод HTTP GET, в основном скопированный из других примеров с использованием HTTP-классов Apache, извлекает только первые несколько K большой веб-страницы.Я проверил, что на веб-странице нет строк длиннее, чем 8192 байта (возможно ли это?), Но из веб-страниц размером около 40 Кбайт я получаю, возможно, 6 Кб, а может быть 20 Кб.Кажется, что количество прочитанных байтов не зависит от общего размера веб-страницы, или модуля веб-страницы 8192, или от содержимого веб-страницы.

Любые люди, идеи?

Спасибо!

public static String myHttpGet(String url) throws Exception {
BufferedReader in = null;
try {
    HttpClient client = getHttpClient();
    HttpGet request = new HttpGet();
    request.setURI(new URI(url));
    HttpResponse response = client.execute(request);
    in = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));

    StringBuffer sbuffer = new StringBuffer("");
    String line = "";

    while ((line = in.readLine()) != null) {
        sbuffer.append(line + "\n");
    }
    in.close();

    String result = sbuffer.toString();
    return result; 
} finally {
    if (in != null) {
        try {
            in.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
}

Ответы [ 2 ]

2 голосов
/ 04 сентября 2011

Нет необходимости писать собственный код HttpEntity-to-String, попробуйте EntityUtils вместо:

// this uses the charset the server encoded the entity in
String result = EntityUtils.toString(entity);
0 голосов
/ 04 сентября 2011

Похоже, что проблема со страницами с определенного сайта, запускающего Goo ... У меня нет этой проблемы с большими страницами с других сайтов. Так что код, вероятно, в порядке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...