Как декодировать сжатые данные gzip, возвращенные в ответе HTTP, в python?

Я создал клиент-серверную архитектуру в python, я принимаю HTTP-запрос от клиента, который обслуживается путем запроса другого HTTP-сервера через мой код.

Когда я получаю ответ от третьего сервера, я не могу декодировать данные, сжатые gzip, я сначала разделяю данные ответа, используя \r\nв качестве разделительного символа, который дает мне данные как последний элемент в списке, затем я попытался распаковать его с помощью

zlib.decompress(data[-1]) 

, но это дает мне ошибку неправильных заголовков. Как мне поступить с этой проблемой?

Код

client_reply = ''
                 while 1:
                     chunk = server2.recv(512)
                     if len(chunk) :
                         client.send(chunk)
                         client_reply += chunk
                     else:
                         break
                 client_split = client_reply.split("\r\n")
                 print client_split[-1].decode('zlib')

Я хочу прочитать данные, которые были переданы между клиентом и вторым сервером.

11
задан Toby Allen 18 March 2012 в 20:42
поделиться