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


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

Извлекает сведения о заголовке, связанные с HTTP-запросом.

Синтаксис

BOOL HttpQueryInfoA(
  [in]      HINTERNET hRequest,
  [in]      DWORD     dwInfoLevel,
  [in, out] LPVOID    lpBuffer,
  [in, out] LPDWORD   lpdwBufferLength,
  [in, out] LPDWORD   lpdwIndex
);

Параметры

[in] hRequest

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

[in] dwInfoLevel

Сочетание извлекаемого атрибута и флагов, которые изменяют запрос. Список возможных значений атрибутов и модификаторов см. в разделе Флаги сведений о запросе.

[in, out] lpBuffer

Указатель на буфер для получения запрошенных сведений. Этот параметр не должен иметь значение NULL.

[in, out] lpdwBufferLength

Указатель на переменную, содержащую в записи размер буфера в байтах, на который указывает lpvBuffer.

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

Когда функция
завершает работу с расширенным кодом ошибки ERROR_INSUFFICIENT_BUFFER, переменная, на которую указывает lpdwBufferLength , содержит при выходе размер буфера в байтах, достаточно большой для получения запрошенной информации. Затем вызывающее приложение может выделить буфер такого размера или большего размера и снова вызвать функцию.

[in, out] lpdwIndex

Указатель на отсчитываемый от нуля индекс заголовков, используемый для перечисления нескольких заголовков с одинаковым именем. При вызове функции этот параметр является индексом возвращаемого заголовка. При возврате функции этот параметр является индексом следующего заголовка. Если не удается найти следующий индекс, возвращается ERROR_HTTP_HEADER_NOT_FOUND .

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

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

Комментарии

Из HttpQueryInfo можно получить следующие типы данных:

  • Строки (по умолчанию)
  • SYSTEMTIME (для дат)
  • DWORD (для STATUS_CODE, CONTENT_LENGTH и т. д., если используется HTTP_QUERY_FLAG_NUMBER )

Если приложение требует, чтобы данные возвращались в виде типа данных, отличного от строки, необходимо включить соответствующий модификатор с атрибутом, передаваемым в dwInfoLevel.

Функция HttpQueryInfo доступна в Microsoft Internet Обозреватель 3.0 для символов ISO-8859-1 (функция HttpQueryInfoA) и в Internet Обозреватель 4.0 или более поздней версии для символов ISO-8859-1 (функция HttpQueryInfoA) и для символов ISO-8859-1, преобразованных в символы UTF-16LE.( функция HttpQueryInfoW).

Примечание Функция HttpQueryInfoA представляет заголовки в виде символов ISO-8859-1, а не символов ANSI. Функция HttpQueryInfoW представляет заголовки в виде символов ISO-8859-1, преобразованных в символы UTF-16LE. Поэтому никогда не безопасно использовать функцию HttpQueryInfoW , если заголовки могут содержать символы, отличные от ASCII. Вместо этого приложение может использовать функции MultiByteToWideChar и WideCharToMultiByte с параметром Codepage , равным 28591, для сопоставления между символами ANSI и символами UTF-16LE.
 
Пример кода, вызывающего функцию HttpQueryInfo, см. в разделе Получение заголовков HTTP.

Как и все другие аспекты API WinINet, эту функцию нельзя безопасно вызывать из DllMain или конструкторов и деструкторов глобальных объектов.

Примечание WinINet не поддерживает реализации сервера. Кроме того, его не следует использовать из службы. Для серверных реализаций или служб используйте службы Microsoft Windows HTTP (WinHTTP).
 

Примечание

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

Требования

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

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

Сеансы HTTP

Получение заголовков HTTP

Функции WinINet