다음을 통해 공유


HttpSendRequestA 함수(wininet.h)

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

통사론

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 lpszHeaders NULL않은 경우 함수는 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 반환합니다.

httpSendRequesthttpSendRequestA(ANSI 빌드와 함께 사용) 및 HttpSendRequestW(유니코드 빌드와 함께 사용)의 두 가지 버전이 있습니다. dwHeadersLength -1L 있고 lpszHeaders NULL않으면 다음이 발생합니다. HttpSendRequestA 호출되면 함수는 lpszHeaders ASCIIZ(zero-terminated)라고 가정하고 길이를 계산합니다. HttpSendRequestW 호출되면 함수는 ERROR_INVALID_PARAMETER함께 실패합니다.

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

메모

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

요구 사항

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

참고 항목

http 세션

winINet Functions