Функция 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-terminated, содержащую http-команду, используемую в запросе. Если этот параметр null, функция использует GET в качестве команды HTTP.
[in] lpszObjectName
Указатель на строку null-terminated, содержащую имя целевого объекта указанной http-команды. Обычно это имя файла, исполняемый модуль или описатель поиска.
[in] lpszVersion
Указатель на строку null-terminated, содержащую версию HTTP, используемую в запросе. Параметры в Internet Explorer переопределяют значение, указанное в этом параметре.
Если этот параметр NULL, функция использует HTTP-версию 1.1 или 1.0 в зависимости от значения параметров Internet Explorer.
Ценность | Значение |
---|---|
|
HTTP версии 1.0 |
|
HTTP версии 1.1 |
[in] lpszReferrer
Указатель на строку null-terminated, указывающую URL-адрес документа, из которого был получен URL-адрес запроса (lpszObjectName). Если этот параметр значение NULL, не указана ссылка.
[in] lplpszAcceptTypes
Указатель на null-завершенный массив строк, указывающий типы носителей, принятые клиентом. Ниже приведен пример.
PCTSTR rgpszAcceptTypes[] = {_T("text/*"), NULL};
Сбой правильного завершения массива с указателем NULL приведет к сбою.
Если этот параметр null, то типы не принимаются клиентом. Серверы обычно интерпретируют отсутствие типов принятия, чтобы указать, что клиент принимает только документы типа "text/*" (т. е. только текстовые документы — нет изображений или других двоичных файлов).
[in] dwFlags
Параметры Интернета. Этот параметр может быть любым из следующих значений.
Ценность | Значение |
---|---|
|
Возвращает ресурс из кэша, если сетевой запрос ресурса завершается сбоем из-за ERROR_INTERNET_CONNECTION_RESET (подключение к серверу было сброшено) или ERROR_INTERNET_CANNOT_CONNECT (попытка подключения к серверу завершилась ошибкой). |
|
Принудивает перезагрузку, если срок действия истекает, и время LastModified не возвращается с сервера при определении необходимости перезагрузки элемента из сети. |
|
Отключает проверку сертификатов на основе 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/PIT и используется только в 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 Explorer 5 и более поздних версий, если lpszVerb имеет значение HEAD, заголовок Content-Length игнорируется на ответах с серверов HTTP/1.1.
В Windows 7 Windows Server 2008 R2 и более поздних версиях параметр lpszVersion переопределяется параметрами Internet Explorer. EnableHttp1_1 — это значение реестра в разделе HKLM\Software\Microsoft\InternetExplorer\AdvacnedOptions\HTTP\GENABLE, контролируемые параметрами Интернета в Internet Explorer для системы. Значение EnableHttp1_1 по умолчанию равно 1. Функция httpOpenRequest обновляет любую версию HTTP менее 1.1 до HTTP версии 1.1, если EnableHttp1_1 имеет значение 1.
После завершения вызова приложения с помощью дескриптора
Примечание Если запрос отправляется в асинхронном режиме (параметр dwFlagsInternetOpen указывает INTERNET_FLAG_ASYNC), а параметр dwContext dwCon text равен нулю (INTERNET_NO_CALLBACK), набор функций обратного вызова с InternetSetStatusCallback в дескрипторе запроса не будет вызываться, однако, Вызов по-прежнему будет выполняться в асинхронном режиме.
Как и все остальные аспекты API WinINet, эта функция не может быть безопасно вызвана из dllMain или конструкторов и деструкторов глобальных объектов.
Заметка
Заголовок wininet.h определяет HttpOpenRequest как псевдоним, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОДа. Сочетание использования псевдонима, нейтрального для кодирования, с кодом, не зависящим от кодирования, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в соглашениях о прототипах функций.
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Windows 2000 Профессиональный [только классические приложения] |
минимальный поддерживаемый сервер | Windows 2000 Server [только классические приложения] |
целевая платформа | Виндоус |
заголовка | wininet.h |
библиотеки |
Wininet.lib |
DLL | Wininet.dll |
См. также
функций WinINet