IMFHttpDownloadSession::CreateRequest 方法 (mfidl.h)

由 Microsoft Media Foundation 调用以创建实现 IMFHttpDownloadRequest 接口的对象,该接口用于发送单个 HTTP 或 HTTPS 请求。 由于可能需要多个请求才能完全下载资源,媒体基础可能会在同一个 IMFHttpDownloadSession 实例上多次调用 CreateRequest。 媒体基础将仅对单个请求使用每个 IMFHttpDownloadRequest 实例。

语法

HRESULT CreateRequest(
  [in]           LPCWSTR                szObjectName,
  [in]           BOOL                   fBypassProxyCache,
  [in]           BOOL                   fSecure,
  [in, optional] LPCWSTR                szVerb,
  [in, optional] LPCWSTR                szReferrer,
                 IMFHttpDownloadRequest **ppRequest
);

parameters

[in] szObjectName

指向包含指定 HTTP 谓词的目标资源名称的字符串的指针。 这通常是文件名、可执行模块或搜索说明符。 目标资源始终以正斜杠字符开头,并包含 URL 中包含的任何查询字符串。

[in] fBypassProxyCache

如果设置为 TRUE,则指示应将请求转发到原始服务器,而不是从代理服务器发送资源的缓存版本。 当此标志设置为 TRUE 时,应将“Pragma: no-cache”标头添加到请求中。 创建 HTTP/1.1 请求时,还应添加“Cache-Control: no-cache”。

[in] fSecure

如果设置为 TRUE,则会导致使用协议的安全变体(如果适用)。 例如,如果 IMFHttpDownloadSession 用于 HTTP/HTTPS,将 fSecure 设置为 TRUE 将导致请求使用 HTTPS。 否则,此示例中 (协议的不安全变体,即 HTTP) 。

[in, optional] szVerb

指向包含要用于请求的 HTTP 谓词的字符串的指针。 如果此参数为 NULL,则该函数使用 GET 作为 HTTP 谓词。

注意 此字符串应全部为大写。 许多服务器将 HTTP 谓词视为区分大小写,Internet 工程任务组 (IETF) 注释请求 (RFC) 仅使用大写字符拼写这些谓词。
 

[in, optional] szReferrer

指向字符串的指针,该字符串指定从中获取请求 szObjectName 中的 URL 的文档的 URL。 如果此参数设置为 NULL,则不指定引用文档。

ppRequest

成功返回方法后,此参数设置为 IMFHttpDownloadRequest 接口。

返回值

该方法返回 HRESULT。 可能的值包括(但并不限于)下表中的项。

返回代码 说明
S_OK
已成功存储提供的信息。
E_OUTOFMEMORY
内存不足,无法完成操作。
MF_E_INVALIDREQUEST
方法是在 Close 之后或 SetServer 调用之前调用的。

要求

   
最低受支持的客户端 Windows 10版本 1703 [仅限桌面应用]
最低受支持的服务器 无受支持的版本
目标平台 Windows
标头 mfidl.h
Library Mfplat.lib;Mfplat.dll

另请参阅

IMFHttpDownloadSession