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.1 |
[in] lpszReferrer
요청의 URL(lpszObjectName)을 가져온 문서의 URL을 지정하는 null로 끝나는 문자열에 대한 포인터입니다. 이 매개 변수가 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에서 HTTP URL로의 리디렉션을 투명하게 허용합니다. |
|
이 특수한 유형의 리디렉션 검색을 사용하지 않도록 설정합니다. 이 플래그를 사용하는 경우 WinINet 함수는 HTTP에서 HTTPS URL로의 리디렉션을 투명하게 허용합니다. |
|
연결에 대해 keep-alive 의미 체계(사용 가능한 경우)를 사용합니다. 이 플래그는 MSN(Microsoft Network), NTLM(NT LAN Manager) 및 기타 유형의 인증에 필요합니다. |
|
파일을 캐시할 수 없는 경우 임시 파일을 만듭니다. |
|
인증을 자동으로 시도하지 않습니다. |
|
HttpSendRequest에서 리디렉션을 자동으로 처리하지 않습니다. |
|
반환된 엔터티를 캐시에 추가하지 않습니다. |
|
요청에 쿠키 헤더를 자동으로 추가하지 않으며 반환된 쿠키를 쿠키 데이터베이스에 자동으로 추가하지 않습니다. |
|
쿠키 대화 상자를 사용하지 않도록 설정합니다. |
|
프록시에 캐시된 복사본이 있는 경우에도 원본 서버에서 요청을 강제로 확인합니다. |
|
캐시가 아니라 원본 서버에서 요청한 파일, 개체 또는 디렉터리 목록을 다운로드합니다. |
|
리소스가 마지막으로 다운로드된 이후 수정된 경우 HTTP 리소스를 다시 로드합니다. 모든 FTP 리소스가 다시 로드됩니다.
Windows XP 및 Windows Server 2003 R2 이하: Gopher 리소스도 다시 로드됩니다. |
|
보안 트랜잭션 의미 체계를 사용합니다. 이는 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 함수를 사용하여 닫아야 합니다.
참고 요청이 비동기 모드로 전송되고(InternetOpen의 dwFlags 매개 변수가 INTERNET_FLAG_ASYNC 지정) dwContext 매개 변수가 0(INTERNET_NO_CALLBACK)인 경우 요청 핸들에서 InternetSetStatusCallback으로 설정된 콜백 함수는 호출되지 않습니다. 그러나 호출은 비동기 모드에서 계속 수행됩니다.
WinINet API의 다른 모든 측면과 마찬가지로 이 함수는 DllMain 내에서 또는 전역 개체의 생성자 및 소멸자에서 안전하게 호출할 수 없습니다.
참고
wininet.h 헤더는 HTTPOpenRequest를 유니코드 전처리기 상수의 정의에 따라 이 함수의 ANSI 또는 유니코드 버전을 자동으로 선택하는 별칭으로 정의합니다. 인코딩 중립 별칭을 인코딩 중립이 아닌 코드와 혼합하면 컴파일 또는 런타임 오류가 발생하는 불일치가 발생할 수 있습니다. 자세한 내용은 함수 프로토타입에 대한 규칙을 참조하세요.
요구 사항
지원되는 최소 클라이언트 | Windows 2000 Professional[데스크톱 앱만] |
지원되는 최소 서버 | Windows 2000 Server[데스크톱 앱만] |
대상 플랫폼 | Windows |
헤더 | wininet.h |
라이브러리 | Wininet.lib |
DLL | Wininet.dll |