Получить заголовок HTTP запроса с Winhttp (winapi)

Подскажите пожалуйста, не могу понять, почему так происходит:

Пытаюсь получить header заголовок hhtp ответа от сервера: Использую функцию из Winhttp - WinHttpQueryHeaders:

DWORD dwSize = 0;           //Сюда функция занесет значение кол-ва байт в прочитанном заголовке
VOID* lpOutBuffer = NULL;   //Сюда функция поместить указатель на массив данных прочитанного заголовка

//Первоначально вызовем функцию для определения кол-ва байт в заголовке(4ый параметр NULL):
BOOL my_WinHttpQueryHeaders = WinHttpQueryHeaders(my_WinHttpOpenRequest, WINHTTP_QUERY_RAW_HEADERS_CRLF, WINHTTP_HEADER_NAME_BY_INDEX, NULL, &dwSize, WINHTTP_NO_HEADER_INDEX);


lpOutBuffer = new char[dwSize]; //Выделим буффер под данные заголовка.


//И опять вызовем функцию (4ый параметр уже указатель lpOutBuffer)
my_WinHttpQueryHeaders = WinHttpQueryHeaders(my_WinHttpOpenRequest, WINHTTP_QUERY_RAW_HEADERS_CRLF, WINHTTP_HEADER_NAME_BY_INDEX, lpOutBuffer, &dwSize, WINHTTP_NO_HEADER_INDEX);

//lpOutBuffer - тут данные заголовка

И вроде бы все нормально, данные в lpOutBuffer, но они идут через байт, то есть первый символ в 0-элементе, второй символ во 2ом элементе, 3 символ в 5ом, а между ними пустые байты.

Хотя ответ от сервера по поводу кодировки: charset=utf-8

Да и вообще заголовок http - может состоять только из ASCII символов.

Не пойму что за особенность такая ? То есть функция возвращает значения в dwSize - минимум в 2 раза больший, чем содержится в заголовке реальных символов. И соответственно заполняет буффер через байт.


Ответы (0 шт):