httpAddUrl 函数 (http.h)

HttpAddUrl 函数注册给定的 URL,以便将其匹配的请求路由到指定的 HTTP 服务器 API 请求队列。 应用程序可以使用对 HttpAddUrl 的重复调用,将多个 URL 注册到单个请求队列。 有关 HTTP 服务器 API 如何将请求 URL 与已注册的 URL 匹配的详细信息,请参阅 UrlPrefix 字符串。

从 HTTP 服务器 API 版本 2.0 开始,应用程序应调用 HttpAddUrlToUrlGroup 来注册 URL;不应使用 HttpAddUrl 。

语法

HTTPAPI_LINKAGE ULONG HttpAddUrl(
  [in] HANDLE RequestQueueHandle,
  [in] PCWSTR FullyQualifiedUrl,
       PVOID  Reserved
);

参数

[in] RequestQueueHandle

请求队列的句柄,指定 URL 的请求将路由到该队列。 创建请求队列,并通过调用 HttpCreateRequestQueue 函数返回其句柄。

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

[in] FullyQualifiedUrl

指向 Unicode 字符串的指针,该字符串包含格式正确的 UrlPrefix 字符串 ,该字符串标识要注册的 URL。

Reserved

保留;必须为 NULL。

返回值

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

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

值 含义
ERROR_ACCESS_DENIED
调用应用程序没有注册 URL 的权限。
ERROR_DLL_INIT_FAILED
调用应用程序在调用此函数之前未调用 HttpInitialize 。
ERROR_INVALID_PARAMETER
其中一个参数无效。
ERROR_ALREADY_EXISTS
指定的 UrlPrefix 与现有注册冲突。
ERROR_NOT_ENOUGH_MEMORY
资源不足,无法完成操作。
其他
WinError.h 中定义的 系统错误代码 。

注解

如 UrlPrefix 字符串 主题中所述,要注册的 UrlPrefix 的方案规范必须是小写“http”或小写“https”。 没有其他子字符串有效。

此外,无法在同一端口上注册具有不同方案的 URL。 也就是说,“http”和“https”方案不能在端口上共存。

另请注意,只要字符串格式良好, HttpAddUrl 就会注册传递给它的任何 UrlPrefix。 对指定 URL 命名空间的存在、可访问性、所有权或其他特征的任何验证必须由应用程序处理。

若要释放由于 HttpAddUrl 执行的注册而分配的资源,请在应用程序完成涉及的命名空间时对 HttpRemoveUrl 函数进行匹配调用。

要求

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

另请参阅

HTTP 服务器 API 版本 1.0 函数

HttpAddUrlToUrlGroup

HttpRemoveUrl