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


Функция 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, в TCHARs. Если этот параметр равен -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: 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 и Функции WideCharToMultiBy te с параметром Codepage , равным 28591, для сопоставления между символами ANSI и символами UTF-16LE.
 
Как и все остальные аспекты API WinINet, эта функция не может быть безопасно вызвана из dllMain или конструкторов и деструкторов глобальных объектов.
Примечание WinINet не поддерживает реализации сервера. Кроме того, его не следует использовать из службы. Для реализации или служб сервера microsoft Windows HTTP Services (WinHTTP).
 

Заметка

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

Требования

Требование Ценность
минимальные поддерживаемые клиентские Windows 2000 Профессиональный [только классические приложения]
минимальный поддерживаемый сервер Windows 2000 Server [только классические приложения]
целевая платформа Виндоус
заголовка wininet.h
библиотеки Wininet.lib
DLL Wininet.dll

См. также

сеансы HTTP

функций WinINet