Автоматически ли python urllib2 распаковывает данные gzip, полученные с веб-страницы?

Помещение ListView в ScrollView никогда не вдохновляет. Но если вы хотите, чтобы ваше опубликованное поведение было похоже на XML, у меня есть 3 варианта:

  1. Удалить ScrollView: удаляя ScrollView, вы можете дать ListView с некоторый конкретный размер по отношению к общему макету (либо конкретный dp или layout_weight).

  2. Заменить ListView s на LinearLayout s: Вы можете добавить элементы списка, просматривая список элементов, и добавлять каждое представление элемента к соответствующему LinearLayout, надувая представление & amp; установка соответствующих данных (строка, изображение и т. д.)

  3. Если вам действительно нужно поместить ListView в ScrollView, вы должны сделать ваши ListView не с возможностью прокрутки (что практически совпадает с решением 2 выше, но с кодами ListView), иначе макет не будет работать так, как вы ожидаете.
    Чтобы сделать ListView не подлежащим прокрутке, вы можете прочитать этот пост SO , где точное решение для меня похоже на приведенное ниже:

listView.setOnTouchListener(new OnTouchListener() {
  public boolean onTouch(View v, MotionEvent event) {
    return (event.getAction() == MotionEvent.ACTION_MOVE);
  }
});

69
задан mhlester 23 February 2014 в 00:02
поделиться

1 ответ

  1. Как узнать, были ли данные в URL сжаты?

Это проверяет, сжаты ли данные и распаковывает их:

from StringIO import StringIO
import gzip

request = urllib2.Request('http://example.com/')
request.add_header('Accept-encoding', 'gzip')
response = urllib2.urlopen(request)
if response.info().get('Content-Encoding') == 'gzip':
    buf = StringIO(response.read())
    f = gzip.GzipFile(fileobj=buf)
    data = f.read()
  1. urllib2 автоматически распаковывает данные, если они сжаты? Будут ли данные всегда представлять собой строку?

Нет. Urllib2 не распаковывает данные автоматически, поскольку заголовок «Accept-Encoding» задается не urllib2, а с помощью: request.add_header('Accept-Encoding','gzip, deflate')

146
ответ дан 24 November 2019 в 13:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: