Поделиться через


структура HTTP_REQUEST_V1 (http.h)

Использует структуру HTTP_REQUEST для возврата данных, связанных с определенным запросом.

Не используйте HTTP_REQUEST_V1 непосредственно в коде; использование HTTP_REQUEST гарантирует, что используется правильная версия, основанная на операционной системе, в которую компилируется код.

Синтаксис

typedef struct _HTTP_REQUEST_V1 {
  ULONG                  Flags;
  HTTP_CONNECTION_ID     ConnectionId;
  HTTP_REQUEST_ID        RequestId;
  HTTP_URL_CONTEXT       UrlContext;
  HTTP_VERSION           Version;
  HTTP_VERB              Verb;
  USHORT                 UnknownVerbLength;
  USHORT                 RawUrlLength;
  PCSTR                  pUnknownVerb;
  PCSTR                  pRawUrl;
  HTTP_COOKED_URL        CookedUrl;
  HTTP_TRANSPORT_ADDRESS Address;
  HTTP_REQUEST_HEADERS   Headers;
  ULONGLONG              BytesReceived;
  USHORT                 EntityChunkCount;
  PHTTP_DATA_CHUNK       pEntityChunks;
  HTTP_RAW_CONNECTION_ID RawConnectionId;
  PHTTP_SSL_INFO         pSslInfo;
} HTTP_REQUEST_V1, *PHTTP_REQUEST_V1;

Члены

Flags

Сочетание 0 или более следующих значений флагов может быть объединено с OR, если это необходимо.

Значение Значение
HTTP_REQUEST_FLAG_MORE_ENTITY_BODY_EXISTS
Для этого запроса необходимо прочитать больше текста сущности. Это относится только к входящим запросам, охватывающим несколько операций чтения.

Если это значение не задано, либо весь текст сущности был скопирован в буфер, заданный pEntityChunks , либо запрос не включал тело сущности.

HTTP_REQUEST_FLAG_IP_ROUTED
Запрос был перенаправлен на основе привязки узла и IP-адреса. Приложение должно отражать локальный IP-адрес при очистке записей кэша ядра для этого запроса.

Windows Server 2003 с пакетом обновления 1 (SP1) и Windows XP с пакетом обновления 2 (SP2): Этот флаг не поддерживается.

HTTP_REQUEST_FLAG_HTTP2
Указывает, что запрос был получен по протоколу HTTP/2.

ConnectionId

Идентификатор подключения, по которому был получен запрос. Используйте это значение при вызове HttpWaitForDisconnect или HttpReceiveClientCertificate.

RequestId

Значение, используемое для идентификации запроса при вызове HttpReceiveRequestEntityBody, HttpSendHttpResponse и (или ) HttpSendResponseEntityBody.

UrlContext

Контекст, связанный с URL-адресом в параметре pRawUrl .

Windows Server 2003 с пакетом обновления 1 (SP1) и Windows XP с пакетом обновления 2 (SP2):

Version

Структура HTTP_VERSION , содержащая версию HTTP, указанную в этом запросе.

Verb

HTTP-команда, связанная с этим запросом. Этот элемент может быть одним из значений из
перечисление HTTP_VERB .

UnknownVerbLength

Если член Verb содержит значение, равное HttpVerbUnknown, член UnknownVerbLength содержит размер строки, на которую указывает элемент pUnknownVerb , не включая завершающий символ NULL, в байтах. Если verb не равно HttpVerbUnknown, UnknownVerbLength равно нулю.

RawUrlLength

Размер в байтах необработанной строки URL-адреса, на которую указывает член pRawUrl , не включая завершающий символ NULL.

pUnknownVerb

Если элемент Verb равен HttpVerbUnknown, pUnknownVerb, указывает на строку октетов, завершающуюся null, которая содержит HTTP-команду для этого запроса; В противном случае приложение игнорирует этот параметр.

pRawUrl

Указатель на строку октетов, содержащую исходный необработанный URL-адрес, предназначенный для этого запроса. Используйте этот необработанные URL-адреса только для отслеживания или статистических целей; Член CookedUrl содержит каноническую форму URL-адреса для общего использования.

CookedUrl

Структура HTTP_COOKED_URL , содержащая проанализированную каноническую версию URL-адреса, предназначенного для этого запроса. Это версия URL-адреса, с которой должны действовать прослушиватели HTTP, а не необработанный URL-адрес.

Address

Структура HTTP_TRANSPORT_ADDRESS , содержащая транспортные адреса для подключения для этого запроса.

Headers

Структура HTTP_REQUEST_HEADERS , содержащая заголовки, указанные в этом запросе.

BytesReceived

Общее число байтов, полученных из сети, включающей этот запрос.

EntityChunkCount

Количество элементов в массиве pEntityChunks . Если тело сущности не было скопировано, это значение равно нулю.

pEntityChunks

Указатель на массив HTTP_DATA_CHUNK структур, содержащий блоки данных, составляющие тело сущности. HttpReceiveHttpRequest не копирует тело сущности, если не вызывается с HTTP_RECEIVE_REQUEST_FLAG_COPY_BODY флагом.

RawConnectionId

Необработанный идентификатор подключения для запроса SSL.

pSslInfo

Указатель на структуру HTTP_SSL_INFO , содержащую сведения ssl о подключении, по которому был получен запрос.

Комментарии

Необработанные URL-адреса, содержащиеся в элементе pRawUrl , предназначен только для отслеживания и статистических целей. Для других целей используйте обработанный канонический URL-адрес, содержащийся в элементе CookedUrl .

Требования

   
Минимальная версия клиента Windows Vista [только классические приложения]
Минимальная версия сервера Windows Server 2008 [только классические приложения]
Верхняя часть http.h

См. также раздел

Структуры API HTTP-сервера версии 2.0

HTTP_COOKED_URL

HTTP_DATA_CHUNK

HTTP_REQUEST

HTTP_REQUEST_V2

HTTP_RESPONSE

HTTP_SSL_INFO

HTTP_TRANSPORT_ADDRESS

HTTP_VERB

HttpReceiveHttpRequest

HttpReceiveRequestEntityBody

HttpSendHttpResponse

HttpSendResponseEntityBody