Поделиться через


Функция HttpAddRequestHeadersA (wininet.h)

Добавляет один или несколько заголовков HTTP-запроса в дескриптор HTTP-запроса.

Синтаксис

BOOL HttpAddRequestHeadersA(
  [in] HINTERNET hRequest,
  [in] LPCSTR    lpszHeaders,
  [in] DWORD     dwHeadersLength,
  [in] DWORD     dwModifiers
);

Параметры

[in] hRequest

Дескриптор, возвращаемый вызовом функции HttpOpenRequest .

[in] lpszHeaders

Указатель на строковую переменную, содержащую заголовки для добавления в запрос. Каждый заголовок должен быть завершен парой CR/LF (возврат каретки и поток строки).

[in] dwHeadersLength

Размер lpszHeaders в TCHAR. Если этот параметр имеет значение -1L, функция предполагает, что lpszHeaders завершается с нуля (ASCIIZ), а длина вычисляется.

[in] dwModifiers

Набор модификаторов, управляющих семантикой этой функции. Этот параметр может быть сочетанием следующих значений.

Значение Значение
HTTP_ADDREQ_FLAG_ADD
Добавляет заголовок , если он не существует. Используется с HTTP_ADDREQ_FLAG_REPLACE.
HTTP_ADDREQ_FLAG_ADD_IF_NEW
Добавляет заголовок только в том случае, если он еще не существует; В противном случае возвращается ошибка.
HTTP_ADDREQ_FLAG_COALESCE
Объединяет заголовки с тем же именем.
HTTP_ADDREQ_FLAG_COALESCE_WITH_COMMA
Объединяет заголовки с тем же именем. Например, добавление "Accept: text/*" и "Accept: audio/*" с этим флагом приводит к формированию одного заголовка "Accept: text/*, audio/*". Это приводит к тому, что первый заголовок будет объединяться. Вызывающее приложение должно обеспечить единую схему в отношении объединенных или отдельных заголовков.
HTTP_ADDREQ_FLAG_COALESCE_WITH_SEMICOLON
Объединяет заголовки с тем же именем с помощью точки с запятой.
HTTP_ADDREQ_FLAG_REPLACE
Заменяет или удаляет заголовок. Если значение заголовка пустое и заголовок найден, оно удаляется. Если значение не пусто, значение заголовка заменяется.

Возвращаемое значение

Возвращает значение TRUE в случае успешного выполнения или FALSE в противном случае. Дополнительные сведения об ошибке можно получить, вызвав GetLastError.

Комментарии

HttpAddRequestHeaders добавляет дополнительные заголовки в свободном формате к дескриптору HTTP-запроса и предназначен для использования сложными клиентами, которым требуется подробный контроль над точным запросом, отправленным на HTTP-сервер.

Обратите внимание, что для базовых httpAddRequestHeaders приложение может передавать несколько заголовков в одном буфере. Если приложение пытается удалить или заменить заголовок, в lpszHeaders можно указать только один заголовок.

Примечание Функция HttpAddRequestHeadersA представляет заголовки в виде символов ISO-8859-1, а не символов ANSI. Функция HttpAddRequestHeadersW представляет заголовки в виде символов ISO-8859-1, преобразованных в символы UTF-16LE. В результате никогда не безопасно использовать функцию HttpAddRequestHeadersW , если добавляемые заголовки могут содержать символы, отличные от ASCII. Вместо этого приложение может использовать функции MultiByteToWideChar и WideCharToMultiByte с параметром Codepage , равным 28591, для сопоставления между символами ANSI и символами UTF-16LE.
 
Как и все другие аспекты API WinINet, эту функцию нельзя безопасно вызывать из DllMain или конструкторов и деструкторов глобальных объектов.
Примечание WinINet не поддерживает реализации сервера. Кроме того, его не следует использовать из службы. Для серверных реализаций или служб используйте службы Microsoft Windows HTTP (WinHTTP).
 

Примечание

Заголовок wininet.h определяет HttpAddRequestHeaders как псевдоним, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОД. Сочетание использования псевдонима, не зависящий от кодировки, с кодом, не зависящим от кодировки, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в разделе Соглашения для прототипов функций.

Требования

   
Минимальная версия клиента Windows 2000 Professional [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Целевая платформа Windows
Header wininet.h
Библиотека Wininet.lib
DLL Wininet.dll

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

Сеансы HTTP

Функции WinINet