httpAddFragmentToCache 函数 (http.h)

HttpAddFragmentToCache 函数缓存具有指定名称的数据片段,以便检索数据片段,或更新以指定名称缓存的数据。 此类缓存数据片段可以重复用于构造动态响应,而无需支付磁盘读取费用。 例如,在处理请求时,可以从四个或更多缓存片段动态组合由文本和三个图像组成的响应。

语法

HTTPAPI_LINKAGE ULONG HttpAddFragmentToCache(
  [in]           HANDLE             RequestQueueHandle,
  [in]           PCWSTR             UrlPrefix,
  [in]           PHTTP_DATA_CHUNK   DataChunk,
  [in]           PHTTP_CACHE_POLICY CachePolicy,
  [in, optional] LPOVERLAPPED       Overlapped
);

参数

[in] RequestQueueHandle

与此缓存关联的请求队列的句柄。 创建请求队列,并通过调用 HttpCreateRequestQueue 函数返回其句柄。

带 SP1 的 Windows Server 2003 和 SP2 的 Windows XP: 请求队列的句柄由 HttpCreateHttpHandle 函数创建。

[in] UrlPrefix

指向 UrlPrefix 字符串 的指针,应用程序在后续调用 HttpSendHttpResponse 时使用该字符串来标识此缓存条目。 应用程序之前必须调用 HttpAddUrl ,其句柄与 ReqQueueHandle 参数相同,并且具有相同的 UrlPrefix 字符串或有效前缀。

与任何 UrlPrefix 一样,此字符串必须采用“scheme://host:port/relativeURI”;例如 。 http://www.mysite.com:80/image1.gif

[in] DataChunk

指向 HTTP_DATA_CHUNK 结构的指针,该结构指定要在 pUrlPrefix 指向的名称下缓存的实体正文数据块。

[in] CachePolicy

指向 HTTP_CACHE_POLICY 结构的指针,该结构指定如何缓存此数据片段。

[in, optional] Overlapped

对于异步调用,请将 pOverlapped 设置为指向 OVERLAPPED 结构;对于同步调用,将其设置为 NULL

同步调用会阻止调用线程,直到缓存操作完成,而异步调用会立即返回ERROR_IO_PENDING,然后调用应用程序使用 GetOverlappedResult 或 I/O 完成端口来确定操作何时完成。 有关使用 OVERLAPPED 结构进行同步的详细信息,请参阅 同步和重叠输入和输出

返回值

如果函数成功,则返回值NO_ERROR。

如果异步使用函数,则返回值 ERROR_IO_PENDING 表示缓存请求已排队,稍后将通过正常的重叠 I/O 完成机制完成。

如果函数失败,则返回值为以下错误代码之一。

含义
ERROR_INVALID_PARAMETER
提供的一个或多个参数以不可用的形式提供。
其他
WinError.h 中定义的 系统错误代码

要求

要求
最低受支持的客户端 Windows Vista、Windows XP 和 SP2 [仅限桌面应用]
最低受支持的服务器 Windows Server 2003 [仅限桌面应用]
目标平台 Windows
标头 http.h
Library Httpapi.lib
DLL Httpapi.dll

另请参阅

HTTP 服务器 API 版本 1.0 函数

HttpFlushResponseCache

HttpReadFragmentFromCache