Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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


Донат для форума - использовать для поднятия настроения себе и модераторам

А ещё здесь можно купить рекламу за 15 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

Ответ
 
Опции темы
Старый 18.10.2011, 15:49   #1
Slafka
 
Регистрация: 06.06.2011
Сообщений: 6
Репутация: 10
По умолчанию 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
Репутация: 181
По умолчанию

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

Цитата:
Сообщение от 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
Репутация: 53
По умолчанию

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

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

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
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


20:05.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.

Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru