Не удается изменить заголовок ответа в расширении isapi
У меня есть расширение isapi, которое возвращает файл изображения через WriteClient().
Мне нужно вернуть "Content-Type: image/jpeg" в заголовок (иначе вызывающее приложение не будет обрабатывать изображение)
Итак, я создаю HSE_SEND_HEADER_EX_INFO
структура и член pszHeader = "Content-Type: image/jpeg\r\n\r\n"
перед тем, как вывести WriteClient (), я вызываю
ecb->ServerSupportFunction( ecb->ConnID, HSE_REQ_SEND_RESPONSE_HEADER_EX, &newHeader, NULL, NULL );
Возврат из вызова ServerSupportFunction() равен TRUE (нет необходимости вызывать GetLastError())
Однако информация моего заголовка помещается в тело, а заголовки по умолчанию отправляются клиенту. Это заголовок, отправленный клиенту:
X-Cache: MISS from ip-172-18-8-226
Server: Microsoft-IIS/8.5
X-Cache-Lookup: HIT from ip-172-18-8-226:3128
Content-Length: NNN
Date: Thu, 21 Sep 2017 14:32:38 GMT
X-Powered-By: ASP.NET
Content-Type text/html
Обратите внимание, что он не изменяет "Content-Type:" на "image/jpeg", но вместо этого сохраняет "Content-Type: text/html"
, Как ни странно, он помещает информацию моего заголовка в (то есть, первая строка тела - "Content-Type: image/jpeg"... с последующими фактическими данными изображения).
Примечание 1: я пытался HSE_SEND_HEADER_INFO
а также HSE_REQ_VECTOR_SEND
, Оба дают одинаковое поведение.
Примечание 2: Если я удаляю вызов WriteClient () и просто вызываю ecb->ServerSupportFunction(), мои возвращаемые данные - это заголовок по умолчанию, который я не могу изменить, за которым следует одна строка (которая теперь является телом содержимого) "Content-Type: image/jpeg"). Таким образом, это поведение НЕ вызвано отправкой данных заголовка через вызов WriteClient ()
Как мне изменить заголовок ответа, чтобы я мог отправить измененный "Content-Type:"?