Функция HttpAddUrl (http.h)

Функция HttpAddUrl регистрирует заданный URL-адрес, чтобы запросы, соответствующие ему, перенаправлялись в указанную очередь запросов API HTTP-сервера. Приложение может зарегистрировать несколько URL-адресов в одной очереди запросов с помощью повторных вызовов HttpAddUrl. Дополнительные сведения о том, как API HTTP-сервера сопоставляет URL-адреса запросов с зарегистрированными URL-адресами, см. в разделе UrlPrefix Strings.

Начиная с API HTTP-сервера версии 2.0 приложения должны вызывать HttpAddUrlToUrlGroup для регистрации URL-адреса; HttpAddUrl не следует использовать.

Синтаксис

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

Параметры

[in] RequestQueueHandle

Дескриптор очереди запросов, в которую будут направляться запросы по указанному URL-адресу. Создается очередь запросов, а ее дескриптор возвращается вызовом функции HttpCreateRequestQueue .

Windows Server 2003 с пакетом обновления 1 (SP1) и Windows XP с пакетом обновления 2 (SP2): Дескриптор очереди запросов создается функцией HttpCreateHttpHandle .

[in] FullyQualifiedUrl

Указатель на строку Юникода, содержащую правильно сформированную строку 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 с пакетом обновления 2 (SP2) [только классические приложения]
Минимальная версия сервера Windows Server 2003 [только классические приложения]
Целевая платформа Windows
Header http.h
Библиотека Httpapi.lib
DLL Httpapi.dll

См. также раздел

Функции API HTTP-сервера версии 1.0

HttpAddUrlToUrlGroup

HttpRemoveUrl