Google App Engine (Java): ответ на выброс URL слишком большие проблемы

StackOverflow https://stackoverflow.com/questions/3996170

Вопрос

Я пытаюсь создать какой -то веб -сервис в приложениях Google.

Теперь проблема в том, что мне нужно получить данные с веб -сайта (HTML Scraping).

Запрос выглядит как:

URL url = new URL(p_url);
con = (HttpURLConnection) url.openConnection();
InputStreamReader in = new InputStreamReader(con.getInputStream());
BufferedReader reader = new BufferedReader(in);

        String result = "";
        String line = "";
        while((line = reader.readLine()) != null)
        {
            System.out.println(line);
        }
        return result;

Теперь приложение двигатель дает мне исключение Follwing на 3 -й линии:

com.google.appengine.api.urlfetch.ResponseTooLargeException

Это связано с тем, что максимальный предел запроса составляет 1 МБ, а общий HTML со страницы составляет около 1,5 МБ.

Теперь мой вопрос: мне нужны только первые 20 строк HTML, чтобы очистить. Есть ли способ получить только часть HTML, чтобы ответное количество не было брошено?

Заранее спасибо!

Это было полезно?

Решение

Решен проблемой, используя API URLFetch низкого уровня.

И настройка опции AllingTruncate на TRUE;

http://code.google.com/intl/nl-nl/appengine/docs/java/javadoc/com/google/appengine/api/urlfetch/fetchoptions.html

В основном это работает так:

HTTPRequest request = new HTTPRequest(_url, HTTPMethod.POST, Builder.allowTruncate());
URLFetchService service = URLFetchServiceFactory.getURLFetchService();
HTTPResponse response = service.fetch(request);
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top