Функция HttpOpenRequestA (wininet.h)
Создает дескриптор HTTP-запроса.
Синтаксис
HINTERNET HttpOpenRequestA(
[in] HINTERNET hConnect,
[in] LPCSTR lpszVerb,
[in] LPCSTR lpszObjectName,
[in] LPCSTR lpszVersion,
[in] LPCSTR lpszReferrer,
[in] LPCSTR *lplpszAcceptTypes,
[in] DWORD dwFlags,
[in] DWORD_PTR dwContext
);
Параметры
[in] hConnect
Дескриптор http-сеанса, возвращенного InternetConnect.
[in] lpszVerb
Указатель на строку, завершающуюся значением NULL, которая содержит HTTP-команду, используемую в запросе. Если этот параметр имеет значение NULL, функция использует GET в качестве HTTP-команды.
[in] lpszObjectName
Указатель на строку, завершающуюся null, которая содержит имя целевого объекта указанной HTTP-команды. Обычно это имя файла, исполняемый модуль или описатель поиска.
[in] lpszVersion
Указатель на строку, завершающуюся значением NULL, которая содержит версию HTTP, используемую в запросе. Параметры в Обозреватель Интернета переопределяют значение, указанное в этом параметре.
Если этот параметр имеет значение NULL, функция использует версию HTTP 1.1 или 1.0 в зависимости от значения параметров internet Обозреватель.
Значение | Значение |
---|---|
|
HTTP версии 1.0 |
|
HTTP версии 1.1 |
[in] lpszReferrer
Указатель на строку, завершающуюся значением NULL, которая указывает URL-адрес документа, из которого был получен URL-адрес в запросе (lpszObjectName). Если этот параметр имеет значение NULL, ссылочный объект не указан.
[in] lplpszAcceptTypes
Указатель на массив строк со значением NULL, указывающий типы мультимедиа, принятые клиентом. Ниже приведен пример.
PCTSTR rgpszAcceptTypes[] = {_T("text/*"), NULL};
Неправильное завершение массива с помощью указателя NULL приведет к сбою.
Если этот параметр имеет значение NULL, клиент не принимает типы. Серверы обычно интерпретируют отсутствие типов accept, чтобы указать, что клиент принимает только документы типа "text/*" (то есть только текстовые документы — без изображений или других двоичных файлов).
[in] dwFlags
Параметры браузера. Этот параметр может быть любым из следующих значений.
Значение | Значение |
---|---|
|
Возвращает ресурс из кэша, если сетевой запрос к ресурсу завершается сбоем из-за ERROR_INTERNET_CONNECTION_RESET (соединение с сервером было сброшено) или ERROR_INTERNET_CANNOT_CONNECT (попытка подключения к серверу завершилась сбоем). |
|
При определении того, следует ли перезагрузить элемент из сети, принудительно выполняется перезагрузка, если не было возвращено время истечения срока действия и время последнегоmodified, возвращенное сервером. |
|
Отключает проверку сертификатов на основе SSL/PCT, возвращаемых с сервера, по имени узла, указанному в запросе. Функции WinINet используют простой проверка сертификатов, сравнивая имена узлов и простые правила подстановки. |
|
Отключает проверку сертификатов на основе SSL/PCT на правильные даты действия. |
|
Отключает обнаружение этого специального типа перенаправления. При использовании этого флага функции WinINet прозрачно разрешают перенаправления с HTTPS на URL-адреса HTTP. |
|
Отключает обнаружение этого специального типа перенаправления. При использовании этого флага функции WinINet прозрачно разрешают перенаправление с HTTP на URL-адреса HTTPS. |
|
Использует для подключения семантику поддержания активности, если она доступна. Этот флаг необходим для microsoft Network (MSN), NT LAN Manager (NTLM) и других типов проверки подлинности. |
|
Вызывает создание временного файла, если файл не может быть кэширован. |
|
Не пытается выполнить проверку подлинности автоматически. |
|
Не обрабатывает перенаправление автоматически в HttpSendRequest. |
|
Не добавляет возвращенную сущность в кэш. |
|
Не добавляет автоматически заголовки файлов cookie в запросы и не добавляет возвращенные файлы cookie в базу данных cookie. |
|
Отключает диалоговое окно cookie. |
|
Принудительно разрешает запрос сервером-источником, даже если на прокси-сервере существует кэшированная копия. |
|
Принудительное скачивание запрошенного файла, объекта или списка каталога с исходного сервера, а не из кэша. |
|
Перезагружает http-ресурсы, если ресурс был изменен с момента последнего скачивания. Все ресурсы FTP перезагружаются.
Windows XP и Windows Server 2003 R2 и более ранние версии: Ресурсы Gopher также перезагружаются. |
|
Использует безопасную семантику транзакций. Это означает использование технологии SSL/PCT и имеет смысл только в HTTP-запросах. |
[in] dwContext
Указатель на переменную, содержащую определяемое приложением значение, которое связывает эту операцию с любыми данными приложения.
Возвращаемое значение
Возвращает дескриптор HTTP-запроса в случае успешного выполнения или значение NULL в противном случае. Чтобы получить расширенные сведения об ошибке, вызовите Метод GetLastError.
Комментарии
Функция HttpOpenRequest создает новый дескриптор HTTP-запроса и сохраняет указанные параметры в этом дескрипторе. Дескриптор HTTP-запроса содержит запрос, отправляемый на HTTP-сервер, и содержит все заголовки RFC822/MIME/HTTP, отправляемые как часть запроса.
Если указан глагол, отличный от GET или POST, HttpOpenRequest автоматически задает INTERNET_FLAG_NO_CACHE_WRITE и INTERNET_FLAG_RELOAD для запроса.
При использовании Microsoft Internet Обозреватель 5 и более поздних версий, если для параметра lpszVerb задано значение "HEAD", заголовок Content-Length игнорируется в ответах от серверов HTTP/1.1.
В Windows 7, Windows Server 2008 R2 и более поздних версиях параметр lpszVersion переопределяется параметрами internet Обозреватель. EnableHttp1_1 — это значение реестра hKLM\Software\Microsoft\InternetExplorer\AdvacnedOptions\HTTP\GENABLE, управляемое параметрами браузера, установленными в Обозреватель Интернета для системы. Значение EnableHttp1_1 по умолчанию равно 1. Функция HttpOpenRequest обновляет любую версию HTTP меньше 1.1 до ВЕРСИИ HTTP 1.1, если EnableHttp1_1 имеет значение 1.
После завершения работы вызывающего приложения с помощью дескриптора HINTERNET , возвращаемого HttpOpenRequest, его необходимо закрыть с помощью функции InternetCloseHandle .
Примечание Если запрос отправляется в асинхронном режиме (параметр dwFlagsinternetOpen указывает INTERNET_FLAG_ASYNC), а параметр dwContext равен нулю (INTERNET_NO_CALLBACK), функция обратного вызова, заданная с параметром InternetSetStatusCallback для дескриптора запроса, не вызывается, однако вызов по-прежнему будет выполняться в асинхронном режиме.
Как и все другие аспекты API WinINet, эту функцию нельзя безопасно вызывать из DllMain или конструкторов и деструкторов глобальных объектов.
Примечание
Заголовок wininet.h определяет HttpOpenRequest как псевдоним, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОД. Сочетание использования псевдонима, не зависящий от кодировки, с кодом, не зависящим от кодировки, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в разделе Соглашения для прототипов функций.
Требования
Минимальная версия клиента | Windows 2000 Professional [только классические приложения] |
Минимальная версия сервера | Windows 2000 Server [только классические приложения] |
Целевая платформа | Windows |
Header | wininet.h |
Библиотека | Wininet.lib |
DLL | Wininet.dll |