Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > C/C++ Сетевое программирование
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.10.2011, 15:49   #1
Slafka
 
Регистрация: 06.06.2011
Сообщений: 6
По умолчанию HTTP и Gzip

Всем привет!
У меня возникла проблема при распаковки данных полученных через http с произвольного сайта.
Для распаковки и упаковки данных используется метод gzip. Реализовано это дело с помощью библиотеки zlib и фильтров boost. Программа упаковывает и распаковывает данные из произвольного файла совершенно нормально.
Встала задача: распаковать сжатые данные полученные от http-сервера. Вот тут то и начались проблемы. Библиотека отказывается их распаковывать и генерирует исключение bad-header. Более того - распаковать данные не может и 7-zip, ругается на неправильный формат архива.
Кто что может посоветовать касаемо этого вопроса? Может быть у кого-то был опыт и есть какие-то особенности сжатия в протоколе http?
Очень надеюсь на вашу помощь, заранее благодарен.
Slafka вне форума Ответить с цитированием
Старый 18.10.2011, 16:50   #2
haruhi
Форумчанин
 
Аватар для haruhi
 
Регистрация: 05.10.2011
Сообщений: 368
По умолчанию

из полученного от сервера файла правильно выкинут HTTP-заголовок?
Не стоит будить спящего Бога! (с) Меланхолия Харухи Судзумии
haruhi вне форума Ответить с цитированием
Старый 18.10.2011, 18:06   #3
Slafka
 
Регистрация: 06.06.2011
Сообщений: 6
По умолчанию

Цитата:
Сообщение от haruhi Посмотреть сообщение
из полученного от сервера файла правильно выкинут HTTP-заголовок?
Т.к. заголовок заканчивается последовательностью \r\n\r\n соответственно я обрезаю до нее.
К примеру, если ответ сервера содержится в std::string Response, то обрезаю так
Код:
Response = Response.substr(Response.find("\r\n\r\n")+4.....
Slafka вне форума Ответить с цитированием
Старый 18.10.2011, 20:30   #4
Руслантус
Наркоман самоучка
Форумчанин
 
Аватар для Руслантус
 
Регистрация: 22.07.2007
Сообщений: 276
По умолчанию

В каком виде передаётся тело сообщения для декодирования? Применяется ли к нему какая-та кодировка?

Второй момент, это chunked. Если данные передаются с помощью chunked, то в теле сообщения хранятся дополнительные данные, а именно размеры блоков.
#include <мозг.h>
Руслантус вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
THttpCli + gzip (Компоненты ICS) X11 Работа с сетью в Delphi 4 13.09.2010 10:01
Gzip в Delphi sivuda Работа с сетью в Delphi 1 22.08.2010 19:55
http http1 Общие вопросы C/C++ 1 21.07.2010 15:07
Http Proxy - как написать к браузеру http-прокси? SergeiGuk Общие вопросы .NET 0 21.05.2010 17:37
Разжать GZIP CoDeR Общие вопросы Delphi 3 23.06.2009 00:20