Android: возможно ли анализировать двоичные данные, когда они поступают в сеть? - PullRequest
0 голосов
/ 13 декабря 2011

Некоторое время назад я работал над парсером для некоторых двоичных данных, которые анализировали данные, когда данные поступали по сети. Важно то, что нам не нужно было ждать загрузки всего набора байтов, прежде чем мы начали анализ. Это значительно улучшило скорость, поскольку позволило увеличить поток, мы смогли что-то сделать, пока система ждала байты.

На Android это возможно с классами Android HTTP? Я хотел бы, чтобы что-то примерно аналогичное также, когда доступно некоторое количество байтов, вызывается обратный вызов, позволяющий мне анализировать эти байты, пока система продолжает загружать больше байтов. Я немного поработал с DefaultHttpClient, но не уверен, поддерживает ли он то, что я ищу.

1 Ответ

1 голос
/ 13 декабря 2011

Конечно.Стандартный шаблон для загрузки данных обычно выглядит примерно так:

HttpClient httpclient = new DefaultHttpClient();
HttpResponse response = httpclient.execute(new HttpGet(URL));

HttpResponse имеет метод с именем getContent, который возвращает InputStream.Вы можете просто прочитать несколько байтов , выполнить или поставить в очередь некоторую обработку этих данных, а затем получить дополнительные данные.Повторите при необходимости.

...