InternetOpenUrlA 함수(wininet.h)

전체 FTP 또는 HTTP URL로 지정된 리소스를 엽니다.

구문

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

읽기를 시작할 URL을 지정하는 null로 끝나는 문자열 변수에 대한 포인터입니다. ftp:, http:또는 https:로 시작하는 URL만 지원됩니다.

[in] lpszHeaders

HTTP 서버로 보낼 헤더를 지정하는 null로 끝나는 문자열에 대한 포인터입니다. 자세한 내용은 HttpSendRequest 함수의 lpszHeaders 매개 변수에 대한 설명을 참조하세요.

[in] dwHeadersLength

추가 헤더의 크기( TCHAR)입니다. 이 매개 변수가 -1L이고 lpszHeadersNULL이 아닌 경우 lpszHeaders 는 ASCIIZ(0-terminated)로 간주되고 길이가 계산됩니다.

[in] dwFlags

이 매개 변수는 다음 값 중 하나일 수 있습니다.

의미
INTERNET_FLAG_EXISTING_CONNECT
요청을 만드는 데 필요한 특성이 동일한 경우 기존 InternetConnect 개체를 사용하려고 시도합니다. FTP는 일반적으로 동일한 세션 동안 여러 작업을 수행하는 유일한 프로토콜이므로 FTP 작업에만 유용합니다. WinINet API는 InternetOpen에서 생성된 각 HINTERNET 핸들에 대해 단일 연결 핸들을 캐시합니다. 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에서 HTTP URL로의 리디렉션을 투명하게 허용합니다.
INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTPS
이 특수한 유형의 리디렉션 검색을 사용하지 않도록 설정합니다. 이 플래그를 사용하는 경우 WinINet은 HTTP에서 HTTPS URL로의 리디렉션을 투명하게 허용합니다.
INTERNET_FLAG_KEEP_CONNECTION
연결에 대해 keep-alive 의미 체계(사용 가능한 경우)를 사용합니다. 이 플래그는 MSN(Microsoft Network), NTLM 및 기타 유형의 인증에 필요합니다.
INTERNET_FLAG_NEED_FILE
파일을 캐시할 수 없는 경우 임시 파일을 만듭니다.
INTERNET_FLAG_NO_AUTH
인증을 자동으로 시도하지 않습니다.
INTERNET_FLAG_NO_AUTO_REDIRECT
HttpSendRequest에서 리디렉션을 자동으로 처리하지 않습니다.
INTERNET_FLAG_NO_CACHE_WRITE
반환된 엔터티를 캐시에 추가하지 않습니다.
INTERNET_FLAG_NO_COOKIES
요청에 쿠키 헤더를 자동으로 추가하지 않으며 반환된 쿠키를 쿠키 데이터베이스에 자동으로 추가하지 않습니다.
INTERNET_FLAG_NO_UI
쿠키 대화 상자를 사용하지 않도록 설정합니다.
INTERNET_FLAG_PASSIVE
수동 FTP 의미 체계를 사용합니다. InternetOpenUrl은 FTP 파일 및 디렉터리에 이 플래그를 사용합니다.
INTERNET_FLAG_PRAGMA_NOCACHE
프록시에 캐시된 복사본이 있는 경우에도 원본 서버에서 요청을 강제로 확인합니다.
INTERNET_FLAG_RAW_DATA
FTP 디렉터리 정보를 검색할 때 데이터를 WIN32_FIND_DATA 구조로 반환합니다. 이 플래그를 지정하지 않았거나 CERN 프록시를 통해 호출한 경우 InternetOpenUrl 은 디렉터리의 HTML 버전을 반환합니다.

Windows XP 및 Windows Server 2003 R2 이하: 또한 Gopher 디렉터리 정보를 검색할 때 데이터를 GOPHER_FIND_DATA 구조로 반환합니다.

INTERNET_FLAG_RELOAD
캐시가 아니라 원본 서버에서 요청한 파일, 개체 또는 디렉터리 목록을 다운로드합니다.
INTERNET_FLAG_RESYNCHRONIZE
리소스가 마지막으로 다운로드된 이후 수정된 경우 HTTP 리소스를 다시 로드합니다. 모든 FTP 리소스가 다시 로드됩니다.

Windows XP 및 Windows Server 2003 R2 이하: Gopher 리소스도 다시 로드됩니다.

INTERNET_FLAG_SECURE
보안 트랜잭션 의미 체계를 사용합니다. 이는 SSL/PCT(Secure Sockets Layer/Private Communications Technology)를 사용하는 것으로 변환되며 HTTP 요청에서만 의미가 있습니다.

[in] dwContext

반환된 핸들과 함께 모든 콜백 함수에 전달되는 애플리케이션 정의 값을 지정하는 변수에 대한 포인터입니다.

반환 값

연결이 성공적으로 설정된 경우 URL에 유효한 핸들을 반환하거나 연결이 실패하면 NULL 을 반환합니다. 특정 오류 메시지를 검색하려면 GetLastError를 호출합니다. 서비스에 대한 액세스가 거부된 이유를 확인하려면 InternetGetLastResponseInfo를 호출합니다.

설명

사용되는 URL에 상대 URL과 빈 공백으로 구분된 기본 URL이 포함된 경우 InternetCanonicalizeUrl 을 먼저 호출합니다.

이는 애플리케이션이 WinINet에서 지원하는 프로토콜을 통해 데이터를 검색하는 데 사용할 수 있는 일반적인 함수입니다. 이 함수는 애플리케이션이 프로토콜의 세부 사항에 액세스할 필요가 없지만 URL에 해당하는 데이터만 필요한 경우에 특히 유용합니다. InternetOpenUrl 함수는 URL 문자열을 구문 분석하고, 서버에 대한 연결을 설정하고, URL로 식별된 데이터를 다운로드할 준비를 합니다. 그런 다음, 애플리케이션은 InternetReadFile (파일용) 또는 InternetFindNextFile (디렉터리용)을 사용하여 URL 데이터를 검색할 수 있습니다. InternetOpenUrl 전에 InternetConnect를 호출할 필요가 없습니다.

Windows XP 및 Windows Server 2003 R2 이하: InternetOpenUrl 은 일반적으로 CSO(Central Services Organization) 이름 검색에 사용되는 포트 70(표준 Gopher 포트) 및 포트 105를 제외하고 1024 미만의 포트에서 Gopher를 사용하지 않도록 설정합니다.

InternetOpenUrl에서 반환된 HINTERNET 핸들을 사용하여 호출 애플리케이션을 완료한 후에는 InternetCloseHandle 함수를 사용하여 닫혀야 합니다.

참고 비동기 모드(InternetOpendwFlags 매개 변수가 INTERNET_FLAG_ASYNC 지정함)에서 작업하는 경우 dwContext 매개 변수가 0(INTERNET_NO_CALLBACK)이면 세션 핸들에서 InternetSetStatusCallback으로 설정된 콜백 함수가 호출되지 않습니다. 그러나 호출은 비동기 모드에서 계속 수행됩니다.

WinINet API의 다른 모든 측면과 마찬가지로 이 함수는 DllMain 내에서 또는 전역 개체의 생성자 및 소멸자에서 안전하게 호출할 수 없습니다.

참고 WinINet은 서버 구현을 지원하지 않습니다. 또한 서비스에서 사용하지 않아야 합니다. 서버 구현 또는 서비스의 경우 WinHTTP(Microsoft Windows HTTP 서비스)를 사용합니다.
 

참고

wininet.h 헤더는 INTERNETOpenUrl을 유니코드 전처리기 상수의 정의에 따라 이 함수의 ANSI 또는 유니코드 버전을 자동으로 선택하는 별칭으로 정의합니다. 인코딩 중립 별칭을 인코딩 중립이 아닌 코드와 혼합하면 컴파일 또는 런타임 오류가 발생하는 불일치가 발생할 수 있습니다. 자세한 내용은 함수 프로토타입에 대한 규칙을 참조하세요.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 2000 Professional[데스크톱 앱만]
지원되는 최소 서버 Windows 2000 Server[데스크톱 앱만]
대상 플랫폼 Windows
헤더 wininet.h
라이브러리 Wininet.lib
DLL Wininet.dll

추가 정보

균일한 리소스 로케이터 처리

WinINet 함수