Не удается изменить заголовок ответа в расширении 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:"?

0 ответов

Другие вопросы по тегам