Russian Qt Forum

Qt => Работа с сетью => Тема начата: admsasha от Декабрь 26, 2013, 16:26



Название: Не могу составить заголовок http для zlib
Отправлено: admsasha от Декабрь 26, 2013, 16:26
Пишу, что-то вроде http-сервера. Хочу чтобы он слал упакованные тела.

В QByteArray result есть некий текст

составляю html заголовки.
Код:
            HTMLHead+="HTTP/1.1 200 OK\r\n";
            HTMLHead+="Content-Length: "+QString::number(result.size())+"\r\n";
            HTMLHead+="Content-Type: text/html\r\n";
            HTMLHead+="Content-Encoding: deflate\r\n";
            HTMLHead+="\r\n";
            result=HTMLHead+result;

И пытался сделать так
Код:
           HTMLHead+="Transfer-Encoding: chunked\r\n";
            HTMLHead+="Content-Type: text/html\r\n";
            HTMLHead+="Content-Encoding: deflate\r\n\r\n";
            HTMLHead+=QString::number(result.size(),16)+"\r\n";
            HTMLHead+=result;
            HTMLHead+="0\r\n";
            HTMLHead+="\r\n";
            result=HTMLHead;


result потом шлю в тот же сокет от куда пришел запрос.

При попытке получить данные через curl, получаю сообщение: "curl: (61) Error while processing content unencoding: invalid stored block lengths"

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


Что не так в составленных заголовках ?


Название: Re: Не могу составить заголовок http для zlib
Отправлено: Bepec от Декабрь 26, 2013, 17:29
Тебе же написано - некорректная длина данных. Wireshark в руки и смотри.


Название: Re: Не могу составить заголовок http для zlib
Отправлено: admsasha от Декабрь 27, 2013, 02:09
Тебе же написано - некорректная длина данных. Wireshark в руки и смотри.
Это я понимаю. Для этого я и привел пример формирования заголовка. Там видно, как я считаю длину. Мой вопрос был, где я не правильно его формирую, а не в чем причина.


Название: Re: Не могу составить заголовок http для zlib
Отправлено: carrygun от Декабрь 27, 2013, 04:20
А result.size() не сильно ли большой? А то жет там форматирование надо какое для QString::number.


Название: Re: Не могу составить заголовок http для zlib
Отправлено: admsasha от Декабрь 27, 2013, 04:29
А result.size() не сильно ли большой? А то жет там форматирование надо какое для QString::number.
1431 байт оригинал, 873 байт после упаковки (пакую через qCompress)