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

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

RequestId

一个值,用于在调用 HttpReceiveRequestEntityBodyHttpSendHttpResponse 和/或 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