http.h) (HTTP_REQUEST_V1 结构

使用 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

可以根据需要将以下标志值的零个或多个组合与 OR 组合。

值 含义
HTTP_REQUEST_FLAG_MORE_ENTITY_BODY_EXISTS
此请求需要读取更多实体正文。 这仅适用于跨多个读取的传入请求。

如果未设置此值,则整个实体正文已复制到 pEntityChunks 指定的缓冲区中,或者请求不包含实体正文。

HTTP_REQUEST_FLAG_IP_ROUTED
请求是根据主机和 IP 绑定路由的。 应用程序应在刷新此请求的内核缓存条目时反映本地 IP。

Windows Server 2003 SP1 和 Windows XP SP2: 不支持此标志。

HTTP_REQUEST_FLAG_HTTP2
指示通过 HTTP/2 接收请求。

ConnectionId

接收请求时所基于的连接标识符。 调用 HttpWaitForDisconnect 或 HttpReceiveClientCertificate 时使用此值。

RequestId

一个值,用于在调用 HttpReceiveRequestEntityBody、 HttpSendHttpResponse 和/或 HttpSendResponseEntityBody 时标识请求。

UrlContext

与 pRawUrl 参数中的 URL 关联的上下文。

Windows Server 2003 SP1 和 Windows XP SP2:

Version

包含此请求指定的 HTTP 版本的 HTTP_VERSION 结构。

Verb

与此请求关联的 HTTP 谓词。 此成员可以是
HTTP_VERB 枚举。

UnknownVerbLength

如果 Verb 成员包含的值等于 HttpVerbUnknown,则 UnknownVerbLength 成员包含 pUnknownVerb 成员指向的字符串的大小(以字节为单位),不包括终止 null 字符。 如果 Verb 不等于 HttpVerbUnknown, 则 UnknownVerbLength 等于零。

RawUrlLength

pRawUrl 成员指向的未处理 URL 字符串的大小(以字节为单位),不包括终止 null 字符。

pUnknownVerb

如果 Verb 成员等于 HttpVerbUnknownpUnknownVerb,则指向包含此请求的 HTTP 谓词的以 null 结尾的八进制字符串;否则,应用程序将忽略此参数。

pRawUrl

指向包含此请求所面向的原始未处理 URL 的字符串的指针。 将此未处理的 URL 仅用于跟踪或统计目的; CookedUrl 成员包含常规用途的 URL 规范形式。

CookedUrl

一个HTTP_COOKED_URL结构,其中包含此请求所针对的 URL 的已分析规范宽字符版本。 这是 HTTP 侦听器应处理的 URL 版本,而不是原始 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) 请求的原始连接 ID。

pSslInfo

指向 HTTP_SSL_INFO 结构的指针,该结构包含安全套接字层 (SSL) 有关接收请求的连接的信息。

注解

pRawUrl 成员中包含的未处理的 URL 仅用于跟踪和统计目的。 出于其他目的,请使用 CookedUrl 成员中包含的已处理的规范 URL。

要求

   
最低受支持的客户端 Windows Vista [仅限桌面应用]
最低受支持的服务器 Windows Server 2008 [仅限桌面应用]
标头 http.h

另请参阅

HTTP 服务器 API 版本 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