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

InternetConnect에서 반환된 HTTP 세션에 대한 핸들입니다.

[in] lpszVerb

요청에 사용할 HTTP 동사를 포함하는 null로 끝나는 문자열에 대한 포인터입니다. 이 매개 변수가 NULL이면 함수는 GET을 HTTP 동사로 사용합니다.

[in] lpszObjectName

지정된 HTTP 동사의 대상 개체 이름을 포함하는 null로 끝나는 문자열에 대한 포인터입니다. 일반적으로 파일 이름, 실행 파일 모듈 또는 검색 지정자입니다.

[in] lpszVersion

요청에 사용할 HTTP 버전을 포함하는 null로 끝나는 문자열에 대한 포인터입니다. 인터넷 Explorer 설정은 이 매개 변수에 지정된 값을 재정의합니다.

이 매개 변수가 NULL인 경우 함수는 인터넷 Explorer 설정의 값에 따라 HTTP 버전 1.1 또는 1.0을 사용합니다.

의미
HTTP/1.0
HTTP 버전 1.0
HTTP/1.1
HTTP 버전 1.1

[in] lpszReferrer

요청의 URL(lpszObjectName)을 가져온 문서의 URL을 지정하는 null로 끝나는 문자열에 대한 포인터입니다. 이 매개 변수가 NULL이면 참조자가 지정되지 않습니다.

[in] lplpszAcceptTypes

클라이언트에서 허용하는 미디어 형식을 나타내는 null로 끝나는 문자열 배열에 대한 포인터입니다. 다음은 예제입니다.

PCTSTR rgpszAcceptTypes[] = {_T("text/*"), NULL};

NULL 포인터를 사용하여 배열을 제대로 종료하지 못하면 충돌이 발생합니다.

이 매개 변수가 NULL이면 클라이언트에서 형식을 허용하지 않습니다. 서버는 일반적으로 클라이언트가 "text/*" 형식의 문서만 허용함을 나타내기 위해 허용 형식의 부족을 해석합니다(즉, 텍스트 문서만, 그림이나 다른 이진 파일 없음).

[in] dwFlags

인터넷 옵션. 이 매개 변수는 다음 값 중 어느 값일 수 있습니다.

의미
INTERNET_FLAG_CACHE_IF_NET_FAIL
ERROR_INTERNET_CONNECTION_RESET(서버와의 연결이 다시 설정됨) 또는 ERROR_INTERNET_CANNOT_CONNECT(서버에 연결 시도가 실패함)으로 인해 리소스에 대한 네트워크 요청이 실패하면 캐시에서 리소스를 반환합니다.
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(NT LAN Manager) 및 기타 유형의 인증에 필요합니다.
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_PRAGMA_NOCACHE
프록시에 캐시된 복사본이 있는 경우에도 원본 서버에서 요청을 강제로 확인합니다.
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

이 작업을 모든 애플리케이션 데이터와 연결하는 애플리케이션 정의 값이 포함된 변수에 대한 포인터입니다.

반환 값

성공하면 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"로 설정된 경우 HTTP/1.1 서버의 응답에서 Content-Length 헤더가 무시됩니다.

Windows 7, Windows Server 2008 R2 이상에서는 lpszVersion 매개 변수가 인터넷 Explorer 설정에 의해 재정의됩니다. EnableHttp1_1 시스템의 인터넷 Explorer 설정된 인터넷 옵션으로 제어되는 HKLM\Software\Microsoft\InternetExplorer\AdvacnedOptions\HTTP\GENABLE 아래의 레지스트리 값입니다. EnableHttp1_1 값은 기본적으로 1입니다. httpOpenRequest 함수는 EnableHttp1_1 1로 설정된 경우 1.1 미만의 HTTP 버전을 HTTP 버전 1.1로 업그레이드합니다.

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

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

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

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

참고

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

요구 사항

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

추가 정보

HTTP 세션

WinINet 함수