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


Функция 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-terminated, указывающую заголовки, которые необходимо отправить на HTTP-сервер. Дополнительные сведения см. в описании параметра lpszHeaders в функции HttpSendRequest.

[in] dwHeadersLength

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

[in] dwFlags

Этот параметр может быть одним из следующих значений.

Ценность Значение
INTERNET_FLAG_EXISTING_CONNECT
Пытается использовать существующий объект InternetConnect, если один существует с теми же атрибутами, необходимыми для выполнения запроса. Это полезно только для операций FTP, так как FTP является единственным протоколом, который обычно выполняет несколько операций во время одного сеанса. API WinINet кэширует один дескриптор подключения для каждого дескриптора HINTERNET, созданного InternetOpen. InternetOpenUrl использует этот флаг для подключений HTTP и FTP.
INTERNET_FLAG_HYPERLINK
Принудивает перезагрузку, если срок действия истекает, и время LastModified не возвращается с сервера при определении необходимости перезагрузки элемента из сети.
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/PIT и используется только в 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.

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

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

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

Заметка

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

Требования

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

См. также

обработка единого указателя ресурсов

функций WinINet