다음을 통해 공유


HttpSendRequestA 함수(wininet.h)

지정된 요청을 HTTP 서버로 보내 호출자가 일반적으로 HttpSendRequestEx에 전달되는 것 이상으로 추가 데이터를 보낼 수 있도록 합니다.

구문

BOOL HttpSendRequestA(
  [in] HINTERNET hRequest,
  [in] LPCSTR    lpszHeaders,
  [in] DWORD     dwHeadersLength,
  [in] LPVOID    lpOptional,
  [in] DWORD     dwOptionalLength
);

매개 변수

[in] hRequest

HttpOpenRequest 함수에 대한 호출에서 반환되는 핸들입니다.

[in] lpszHeaders

요청에 추가할 추가 헤더를 포함하는 null로 끝나는 문자열에 대한 포인터입니다. 추가할 추가 헤더가 없는 경우 이 매개 변수는 NULL 일 수 있습니다.

[in] dwHeadersLength

추가 헤더의 크기( TCHAR)입니다. 이 매개 변수가 -1L이고 lpszHeadersNULL이 아닌 경우 함수는 lpszHeaders 가 ASCIIZ(0-terminated)이고 길이가 계산된다고 가정합니다. 자세한 내용은 설명을 참조하세요.

[in] lpOptional

요청 헤더 바로 다음에 보낼 선택적 데이터가 포함된 버퍼에 대한 포인터입니다. 이 매개 변수는 일반적으로 POST 및 PUT 작업에 사용됩니다. 선택적 데이터는 서버에 게시되는 리소스 또는 정보일 수 있습니다. 보낼 선택적 데이터가 없는 경우 이 매개 변수는 NULL 일 수 있습니다.

[in] dwOptionalLength

선택적 데이터의 크기(바이트)입니다. 보낼 선택적 데이터가 없는 경우 이 매개 변수는 0일 수 있습니다.

반환 값

성공하면 TRUE를 반환하고 그렇지 않으면 FALSE를 반환합니다. 확장 오류 정보를 가져오려면 GetLastError를 호출합니다.

설명

HttpSendRequest 는 지정된 요청을 HTTP 서버로 보내고 클라이언트가 요청과 함께 보낼 추가 헤더를 지정할 수 있도록 합니다.

또한 이 함수를 사용하면 클라이언트가 요청 헤더 바로 다음에 HTTP 서버로 보낼 선택적 데이터를 지정할 수 있습니다. 이 기능은 일반적으로 PUT 및 POST와 같은 "쓰기" 작업에 사용됩니다.

요청이 전송되면 HTTP 서버의 상태 코드 및 응답 헤더를 읽습니다. 이러한 헤더는 내부적으로 유지 관리되며 HttpQueryInfo 함수를 통해 클라이언트 애플리케이션에서 사용할 수 있습니다.

애플리케이션은 HttpSendRequest에 대한 여러 호출에서 동일한 HTTP 요청 핸들을 사용할 수 있지만 애플리케이션은 함수를 다시 호출하기 전에 이전 호출에서 반환된 모든 데이터를 읽어야 합니다.

오프라인 모드에서 HttpSendRequest 는 리소스가 인터넷 캐시에 없는 경우 ERROR_FILE_NOT_FOUND 반환합니다.

HttpSendRequest에는 HttpSendRequestA(ANSI 빌드와 함께 사용됨) 및 HttpSendRequestW(유니코드 빌드와 함께 사용)의 두 가지 버전이 있습니다. dwHeadersLength가 -1L이고 lpszHeadersNULL이 아닌 경우 다음이 발생합니다. HttpSendRequestA가 호출되면 함수는 lpszHeaders가 ASCIIZ(0-terminated)이고 길이가 계산된다고 가정합니다. HttpSendRequestW가 호출되면 함수는 ERROR_INVALID_PARAMETER 함께 실패합니다.

참고HttpSendRequestA 함수는 헤더를 ANSI 문자가 아닌 ISO-8859-1 문자로 나타냅니다. HttpSendRequestW 함수는 헤더를 UTF-16LE 문자로 변환된 ISO-8859-1 문자로 나타냅니다. 따라서 추가할 헤더에 ASCII가 아닌 문자를 포함할 수 있는 경우 HttpSendRequestW 함수를 사용하는 것이 안전하지 않습니다. 대신 애플리케이션은 Codepage 매개 변수가 28591로 설정된 MultiByteToWideCharWideCharToMultiByte 함수를 사용하여 ANSI 문자와 UTF-16LE 문자 간에 매핑할 수 있습니다.
 
WinINet API의 다른 모든 측면과 마찬가지로 이 함수는 DllMain 내에서 또는 전역 개체의 생성자 및 소멸자에서 안전하게 호출할 수 없습니다.
참고 WinINet은 서버 구현을 지원하지 않습니다. 또한 서비스에서 사용하지 않아야 합니다. 서버 구현 또는 서비스의 경우 WinHTTP(Microsoft Windows HTTP 서비스)를 사용합니다.
 

참고

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

요구 사항

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

추가 정보

HTTP 세션

WinINet 함수