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

Открывает ресурс, указанный полным URL-адресом FTP или HTTP.

Синтаксис

HINTERNET InternetOpenUrlA(
  [in] HINTERNET hInternet,
  [in] LPCSTR    lpszUrl,
  [in] LPCSTR    lpszHeaders,
  [in] DWORD     dwHeadersLength,
  [in] DWORD     dwFlags,
  [in] DWORD_PTR dwContext
);

Параметры

[in] hInternet

Дескриптор текущего сеанса Интернета. Дескриптор должен быть возвращен предыдущим вызовом InternetOpen.

[in] lpszUrl

Указатель на строковую переменную, завершающуюся значением NULL, которая указывает URL-адрес для начала чтения. Поддерживаются только URL-адреса, начинающиеся с ftp:, http:, или https: .

[in] lpszHeaders

Указатель на строку, завершающуюся значением NULL, которая указывает заголовки для отправки на HTTP-сервер. Дополнительные сведения см. в описании параметра lpszHeaders в функции HttpSendRequest .

[in] dwHeadersLength

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

[in] dwFlags

Этот параметр может принимать одно из указанных ниже значений.

Значение Значение
INTERNET_FLAG_EXISTING_CONNECT
Пытается использовать существующий объект InternetConnect, если он существует с теми же атрибутами, необходимыми для выполнения запроса. Это полезно только для операций FTP, так как FTP является единственным протоколом, который обычно выполняет несколько операций в течение одного сеанса. API WinINet кэширует один дескриптор подключения для каждого дескриптора HINTERNET, созданного InternetOpen. InternetOpenUrl использует этот флаг для подключений HTTP и FTP.
INTERNET_FLAG_HYPERLINK
При определении того, следует ли перезагружать элемент из сети, принудительно выполняется перезагрузка, если не было возвращено время окончания срока действия и время последнего изменения с сервера.
INTERNET_FLAG_IGNORE_CERT_CN_INVALID
Отключает проверку сертификатов на основе SSL/PCT, возвращаемых с сервера, по имени узла, указанному в запросе. Функции WinINet используют простой проверка сертификатов, сравнивая имена узлов и простые правила подстановочных знаков.
INTERNET_FLAG_IGNORE_CERT_DATE_INVALID
Отключает проверку сертификатов на основе SSL/PCT на наличие правильных дат действия.
INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTP
Отключает обнаружение этого специального типа перенаправления. При использовании этого флага WinINet прозрачно разрешает перенаправление с HTTPS на URL-адреса HTTP.
INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTPS
Отключает обнаружение этого специального типа перенаправления. При использовании этого флага WinINet прозрачно разрешает перенаправления с HTTP на URL-адреса HTTPS.
INTERNET_FLAG_KEEP_CONNECTION
Использует для подключения семантику поддержания активности, если она доступна. Этот флаг является обязательным для microsoft network (MSN), NTLM и других типов проверки подлинности.
INTERNET_FLAG_NEED_FILE
Вызывает создание временного файла, если файл не может быть кэширован.
INTERNET_FLAG_NO_AUTH
Не пытается выполнить проверку подлинности автоматически.
INTERNET_FLAG_NO_AUTO_REDIRECT
Не обрабатывает перенаправление автоматически в HttpSendRequest.
INTERNET_FLAG_NO_CACHE_WRITE
Не добавляет возвращенную сущность в кэш.
INTERNET_FLAG_NO_COOKIES
Не добавляет автоматически заголовки файлов cookie в запросы и не добавляет автоматически возвращенные файлы cookie в базу данных файлов cookie.
INTERNET_FLAG_NO_UI
Отключает диалоговое окно cookie.
INTERNET_FLAG_PASSIVE
Использует пассивную семантику FTP. InternetOpenUrl использует этот флаг для FTP-файлов и каталогов.
INTERNET_FLAG_PRAGMA_NOCACHE
Принудительно разрешает запрос сервером-источником, даже если на прокси-сервере существует кэшированная копия.
INTERNET_FLAG_RAW_DATA
Возвращает данные в виде структуры WIN32_FIND_DATA при получении сведений о каталоге FTP. Если этот флаг не указан или вызов был выполнен через прокси-сервер CERN, InternetOpenUrl возвращает HTML-версию каталога.

Windows XP и Windows Server 2003 R2 и более ранние версии: Также возвращает данные в виде структуры GOPHER_FIND_DATA при получении сведений о каталоге Gopher.

INTERNET_FLAG_RELOAD
Принудительное скачивание запрошенного файла, объекта или списка каталогов с сервера-источника, а не из кэша.
INTERNET_FLAG_RESYNCHRONIZE
Перезагружает ресурсы HTTP, если ресурс был изменен с момента последнего скачивания. Все ресурсы FTP перезагружаются.

Windows XP и Windows Server 2003 R2 и более ранние версии: Ресурсы Gopher также перезагружаются.

INTERNET_FLAG_SECURE
Использует безопасную семантику транзакций. Это означает использование технологии SSL/PCT и имеет смысл только в HTTP-запросах.

[in] dwContext

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

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

Возвращает допустимый дескриптор URL-адреса, если подключение установлено успешно, или ЗНАЧЕНИЕ NULL в случае сбоя подключения. Чтобы получить определенное сообщение об ошибке, вызовите Метод GetLastError. Чтобы определить причину отказа в доступе к службе, вызовите InternetGetLastResponseInfo.

Комментарии

Сначала вызовите InternetCanonicalizeUrl , если используемый URL-адрес содержит относительный URL-адрес и базовый URL-адрес, разделенные пробелами.

Это общая функция, которую приложение может использовать для получения данных по любому из протоколов, поддерживаемых WinINet. Эта функция особенно полезна, когда приложению не требуется доступ к данным протокола, а требуются только данные, соответствующие URL-адресу. Функция InternetOpenUrl анализирует строку URL-адреса, устанавливает соединение с сервером и готовится к загрузке данных, определенных по URL-адресу. Затем приложение может использовать InternetReadFile (для файлов) или InternetFindNextFile (для каталогов) для получения данных URL-адреса. Нет необходимости вызывать InternetConnect перед InternetOpenUrl.

Windows XP и Windows Server 2003 R2 и более ранних версий: InternetOpenUrl отключает Gopher на портах менее 1024, за исключением порта 70 (стандартный порт Gopher) и порта 105, который обычно используется для поиска по имени central services Organization (CSO).

После завершения работы вызывающего приложения с дескриптором HINTERNET , возвращенным InternetOpenUrl, его необходимо закрыть с помощью функции InternetCloseHandle .

Примечание При работе в асинхронном режиме (параметр dwFlagsinternetOpen указывает INTERNET_FLAG_ASYNC), а параметр dwContext равен нулю (INTERNET_NO_CALLBACK), функция обратного вызова, заданная с параметром InternetSetStatusCallback в дескрипторе сеанса, не будет вызываться, однако вызов по-прежнему будет выполняться в асинхронном режиме.

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

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

Примечание

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

Требования

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

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

Обработка универсальных указателей ресурсов

Функции WinINet