HttpWebRequest 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
WebRequest 클래스의 HTTP 관련 구현을 제공합니다.
public ref class HttpWebRequest : System::Net::WebRequest
public ref class HttpWebRequest : System::Net::WebRequest, System::Runtime::Serialization::ISerializable
public class HttpWebRequest : System.Net.WebRequest
public class HttpWebRequest : System.Net.WebRequest, System.Runtime.Serialization.ISerializable
[System.Serializable]
public class HttpWebRequest : System.Net.WebRequest, System.Runtime.Serialization.ISerializable
type HttpWebRequest = class
inherit WebRequest
type HttpWebRequest = class
inherit WebRequest
interface ISerializable
[<System.Serializable>]
type HttpWebRequest = class
inherit WebRequest
interface ISerializable
Public Class HttpWebRequest
Inherits WebRequest
Public Class HttpWebRequest
Inherits WebRequest
Implements ISerializable
- 상속
- 상속
- 특성
- 구현
예제
다음 코드 예제에서는 URI http://www.contoso.com/
에 대한 를 만듭니다HttpWebRequest.
HttpWebRequest^ myReq = dynamic_cast<HttpWebRequest^>(WebRequest::Create( "http://www.contoso.com/" ));
HttpWebRequest myReq =
(HttpWebRequest)WebRequest.Create("http://www.contoso.com/");
Dim myReq As HttpWebRequest = _
WebRequest.Create("http://www.contoso.com/")
설명
중요
새 개발에는 사용하지 HttpWebRequest
않는 것이 좋습니다. 대신는 System.Net.Http.HttpClient 클래스입니다.
클래스는 HttpWebRequest 에 정의된 WebRequest 속성 및 메서드와 사용자가 HTTP를 사용하여 서버와 직접 상호 작용할 수 있도록 하는 추가 속성 및 메서드를 지원합니다.
생성자를 HttpWebRequest 사용하지 마세요. 메서드를 WebRequest.Create 사용하여 새 HttpWebRequest 개체를 초기화합니다. URI(Uniform Resource Identifier)에 대한 체계가 http://
또는 https://
Create 이면 개체를 HttpWebRequest 반환합니다.
메서드는 GetResponse 속성에 지정된 RequestUri 리소스에 동기 요청을 만들고 응답 개체가 포함된 을 반환 HttpWebResponse 합니다. 에서 반환 GetResponseStream된 스트림을 사용하여 응답 데이터를 받을 수 있습니다. 응답 개체 또는 응답 스트림이 닫히면 나머지 데이터는 몰수됩니다. 나머지 데이터는 드레이닝되고 다음 조건이 유지되는 경우 응답 개체 또는 스트림을 닫을 때 후속 요청에 소켓이 다시 사용됩니다. 즉, 유지 또는 파이프라인된 요청이거나, 소량의 데이터만 수신해야 하거나, 나머지 데이터는 약간의 시간 간격으로 수신됩니다. 언급된 조건이 없거나 드레이닝 시간을 초과하면 소켓이 닫힙니다. Keep-alive 또는 파이프라인 연결에 대 한 EOF 될 때까지 애플리케이션의 스트림을 읽습니다 하는 것이 좋습니다. 이렇게 하면 후속 요청에 소켓이 다시 사용되어 성능이 향상되고 사용된 리소스가 줄어듭니다.
리소스에 데이터를 보내려는 경우 메서드는 GetRequestStream 데이터를 보내는 데 사용할 개체를 반환 Stream 합니다. 및 EndGetRequestStream 메서드는 BeginGetRequestStream 전송 데이터 스트림에 대한 비동기 액세스를 제공합니다.
를 사용한 HttpWebRequest클라이언트 인증의 경우 현재 사용자의 내 인증서 저장소에 클라이언트 인증서를 설치해야 합니다.
클래스는 HttpWebRequest 리소스에 WebException 액세스하는 동안 오류가 발생할 때 을 throw합니다. 속성에는 WebException.Status 오류의 원인을 나타내는 값이 포함되어 WebExceptionStatus 있습니다. 가 이WebExceptionStatus.ProtocolError면 WebException.Status 속성에 ResponseHttpWebResponse 리소스에서 받은 가 포함됩니다.
HttpWebRequest 는 인터넷 리소스에 전송된 일반적인 HTTP 헤더 값을 속성으로 노출하거나, 메서드로 설정하거나, 시스템에서 설정합니다. 다음 표에는 전체 목록이 포함되어 있습니다. 속성의 다른 헤더를 Headers 이름/값 쌍으로 설정할 수 있습니다. 서버 및 캐시는 요청 중에 헤더를 변경하거나 추가할 수 있습니다.
다음 표에서는 속성 또는 메서드 또는 시스템에 의해 설정된 HTTP 헤더를 나열합니다.
헤더 | 설정 기준 |
---|---|
Accept |
속성으로 Accept 설정합니다. |
Connection |
속성, KeepAlive 속성으로 Connection 설정합니다. |
Content-Length |
속성으로 ContentLength 설정합니다. |
Content-Type |
속성으로 ContentType 설정합니다. |
Expect |
속성으로 Expect 설정합니다. |
Date |
시스템에서 현재 날짜로 설정합니다. |
Host |
시스템에서 현재 호스트 정보로 설정합니다. |
If-Modified-Since |
속성으로 IfModifiedSince 설정합니다. |
Range |
메서드에 의해 설정됩니다 AddRange . |
Referer |
속성으로 Referer 설정합니다. |
Transfer-Encoding |
속성에 TransferEncoding 의해 설정됩니다(속성은 SendChunked 이어야 true 합니다). |
User-Agent |
속성으로 UserAgent 설정합니다. |
참고
HttpWebRequest 가 자동으로 등록됩니다. 또는 https://
로 시작하는 URI를 RegisterPrefix 사용하기 전에 등록 System.Net.HttpWebRequest 할 메서드를 http://
호출할 필요가 없습니다.
로컬 컴퓨터 또는 애플리케이션 구성 파일을 기본 프록시를 사용할 수 있는지 지정할 수 있습니다. 경우는 Proxy 속성을 지정 하면에서 프록시 설정을 Proxy 로컬 컴퓨터 또는 애플리케이션 구성 파일을 재정의 하는 속성 및 HttpWebRequest 인스턴스는 지정 된 프록시 설정을 사용 합니다. 구성 파일에 Proxy 프록시가 지정되지 않고 속성이 지정 HttpWebRequest 되지 않은 경우 클래스는 로컬 컴퓨터의 인터넷 옵션에서 상속된 프록시 설정을 사용합니다. 인터넷 옵션에 프록시 설정이 없으면 요청이 서버로 직접 전송됩니다.
참고
프레임워크는 SSL 세션이 만들어질 때 캐시하고 가능한 경우 새 요청에 캐시된 세션을 다시 사용하려고 시도합니다. SSL 세션을 다시 사용하려고 할 때 프레임워크는 의 ClientCertificates 첫 번째 요소(있는 경우)를 사용하거나 가 비어 있는 경우 ClientCertificates 익명 세션을 다시 사용하려고 합니다.
참고
보안상의 이유로 쿠키는 기본적으로 사용하지 않도록 설정됩니다. 쿠키를 사용하려면 속성을 사용하여 CookieContainer 쿠키를 사용하도록 설정합니다.
.NET Framework 4.6에는 안전하지 않은 암호화 및 연결에 대한 해시 알고리즘을 차단하는 새로운 보안 기능이 포함되어 있습니다. HttpClient, HttpWebRequest, FTPClient, SmtpClient, SslStream 등과 같은 API를 통해 TLS/SSL을 사용하고 .NET Framework 4.6을 대상으로 하는 애플리케이션은 기본적으로 보다 안전한 동작을 가져옵니다.
개발자는 기존 SSL3 서비스 또는 RC4 서비스를 사용하는 TLS와의 상호 운용성을 유지하기 위해 이 동작을 옵트아웃할 수 있습니다. 이 문서에서 는 새 동작을 사용하지 않도록 코드를 수정하는 방법을 설명합니다.
생성자
HttpWebRequest() |
사용되지 않음.
사용되지 않음.
HttpWebRequest 클래스의 새 인스턴스를 초기화합니다. 이 생성자는 사용되지 않습니다. |
HttpWebRequest(SerializationInfo, StreamingContext) |
사용되지 않음.
사용되지 않음.
사용되지 않음.
사용되지 않음.
HttpWebRequest와 SerializationInfo 클래스에 지정된 인스턴스에서 StreamingContext 클래스의 새 인스턴스를 초기화합니다. 이 생성자는 사용되지 않습니다. |
속성
Accept |
HTTP |
Address |
요청에 실제로 응답하는 인터넷 리소스의 URI(Uniform Resource Identifier)를 가져옵니다. |
AllowAutoRedirect |
요청이 리디렉션 응답을 따르는지 여부를 나타내는 값을 가져오거나 설정합니다. |
AllowReadStreamBuffering |
인터넷 리소스에서 받은 데이터를 버퍼링할지 여부를 나타내는 값을 가져오거나 설정합니다. |
AllowWriteStreamBuffering |
인터넷 리소스에 보낸 데이터를 버퍼링할 것인지 여부를 나타내는 값을 가져오거나 설정합니다. |
AuthenticationLevel |
이 요청에 사용되는 인증 및 가장 수준을 나타내는 값을 가져오거나 설정합니다. (다음에서 상속됨 WebRequest) |
AutomaticDecompression |
압축을 푸는 데 사용할 형식을 가져오거나 설정합니다. |
CachePolicy |
이 요청에 대한 캐시 정책을 가져오거나 설정합니다. (다음에서 상속됨 WebRequest) |
ClientCertificates |
이 요청과 관련된 보안 인증서의 컬렉션을 가져오거나 설정합니다. |
Connection |
HTTP |
ConnectionGroupName |
요청에 대한 연결 그룹의 이름을 가져오거나 설정합니다. |
ConnectionGroupName |
파생 클래스에서 재정의될 때 요청에 대한 연결 그룹 이름을 가져오거나 설정합니다. (다음에서 상속됨 WebRequest) |
ContentLength |
|
ContentLength |
서브클래스에서 재정의될 때, 전송 중인 요청 데이터의 콘텐츠 길이를 가져오거나 설정합니다. (다음에서 상속됨 WebRequest) |
ContentType |
HTTP |
ContinueDelegate |
인터넷 리소스에서 HTTP 100-continue 응답을 받을 때 호출된 대리자 메서드를 가져오거나 설정합니다. |
ContinueTimeout |
서버에서 100-Continue가 수신될 때까지 기다릴 제한 시간(밀리초)을 가져오거나 설정합니다. |
CookieContainer |
이 요청과 관련된 쿠키를 가져오거나 설정합니다. |
CreatorInstance |
사용되지 않음.
하위 클래스에서 재정의될 때, 지정된 URI 에 요청하기 위해 인스턴스화된 WebRequest를 만드는 데 사용되는 IWebRequestCreate 클래스에서 파생된 팩터리 개체를 가져옵니다. (다음에서 상속됨 WebRequest) |
Credentials |
요청에 대한 인증 정보를 가져오거나 설정합니다. |
Date |
HTTP 요청에 사용할 |
DefaultCachePolicy |
이 요청에 대한 기본 캐시 정책을 가져오거나 설정합니다. |
DefaultMaximumErrorResponseLength |
HTTP 오류 응답의 기본 최대 길이를 가져오거나 설정합니다. |
DefaultMaximumResponseHeadersLength |
MaximumResponseHeadersLength 속성에 대한 기본값을 가져오거나 설정합니다. |
Expect |
HTTP |
HaveResponse |
인터넷 리소스로부터 응답을 받았는지 여부를 나타내는 값을 가져옵니다. |
Headers |
HTTP 헤더를 구성하는 이름/값 쌍의 컬렉션을 지정합니다. |
Host |
요청 URI와 독립적인 HTTP 요청에 사용할 Host 헤더 값을 가져오거나 설정합니다. |
IfModifiedSince |
HTTP |
ImpersonationLevel |
현재 요청에 대한 가장 수준을 가져오거나 설정합니다. (다음에서 상속됨 WebRequest) |
KeepAlive |
인터넷 리소스에 영구 연결을 할 것인지 여부를 나타내는 값을 가져오거나 설정합니다. |
MaximumAutomaticRedirections |
요청이 따르는 최대 리디렉션 수를 가져오거나 설정합니다. |
MaximumResponseHeadersLength |
응답 헤더의 허용되는 최대 길이를 가져오거나 설정합니다. |
MediaType |
요청의 미디어 형식을 가져오거나 설정합니다. |
Method |
요청에 대한 메서드를 가져오거나 설정합니다. |
Pipelined |
요청을 인터넷 리소스에 파이프라인할 것인지 여부를 나타내는 값을 가져오거나 설정합니다. |
PreAuthenticate |
요청과 함께 인증 헤더를 보낼 것인지 여부를 나타내는 값을 가져오거나 설정합니다. |
PreAuthenticate |
서브클래스에서 재정의될 때, 요청을 사전 인증할지 여부를 나타냅니다. (다음에서 상속됨 WebRequest) |
ProtocolVersion |
요청에 사용할 HTTP의 버전을 가져오거나 설정합니다. |
Proxy |
요청에 대한 프록시 정보를 가져오거나 설정합니다. |
Proxy |
서브클래스에서 재정의될 때, 이 인터넷 리소스에 액세스하기 위해 사용할 네트워크 프록시를 가져오거나 설정합니다. (다음에서 상속됨 WebRequest) |
ReadWriteTimeout |
스트림에 쓰거나 스트림에서 읽을 때의 제한 시간을 밀리초 단위로 가져오거나 설정합니다. |
Referer |
HTTP |
RequestUri |
요청의 원래 URI(Uniform Resource Identifier)를 가져옵니다. |
SendChunked |
인터넷 리소스에 데이터를 분할된 형태로 보낼 것인지 여부를 나타내는 값을 가져오거나 설정합니다. |
ServerCertificateValidationCallback |
서버 인증서의 유효성을 검사할 콜백 함수를 가져오거나 설정합니다. |
ServicePoint |
요청에 사용할 서비스 지점을 가져옵니다. |
SupportsCookieContainer |
요청이 CookieContainer를 지원하는지 여부를 나타내는 값을 가져옵니다. |
Timeout |
GetResponse() 및 GetRequestStream() 메서드의 제한 시간 값을 밀리초 단위로 가져오거나 설정합니다. |
Timeout |
요청이 시간 초과되기 전의 시간(밀리초)을 가져오거나 설정합니다. (다음에서 상속됨 WebRequest) |
TransferEncoding |
HTTP |
UnsafeAuthenticatedConnectionSharing |
고속 NTLM 인증 연결 공유가 허용되는지 여부를 나타내는 값을 가져오거나 설정합니다. |
UseDefaultCredentials |
기본 자격 증명을 요청과 함께 보내는지 여부를 제어하는 Boolean 값을 가져오거나 설정합니다. |
UseDefaultCredentials |
서브클래스에서 재정의된 경우 Boolean를 요청과 함께 보낼지 여부를 제어하는 DefaultCredentials 값을 가져오거나 설정합니다. (다음에서 상속됨 WebRequest) |
UserAgent |
HTTP |
메서드
Abort() |
인터넷 리소스에 대한 요청을 취소합니다. |
AddRange(Int32) |
요청된 데이터의 시작이나 끝에서 특정 범위에 대해 바이트 범위 헤더를 요청에 추가합니다. |
AddRange(Int32, Int32) |
지정된 범위에 대해 요청에 바이트 범위 헤더를 추가합니다. |
AddRange(Int64) |
요청된 데이터의 시작이나 끝에서 특정 범위에 대해 바이트 범위 헤더를 요청에 추가합니다. |
AddRange(Int64, Int64) |
지정된 범위에 대해 요청에 바이트 범위 헤더를 추가합니다. |
AddRange(String, Int32) |
요청된 데이터의 시작이나 끝에서 특정 범위에 대한 요청에 Range 헤더를 추가합니다. |
AddRange(String, Int32, Int32) |
지정된 범위에 대해 요청에 범위 헤더를 추가합니다. |
AddRange(String, Int64) |
요청된 데이터의 시작이나 끝에서 특정 범위에 대한 요청에 Range 헤더를 추가합니다. |
AddRange(String, Int64, Int64) |
지정된 범위에 대해 요청에 범위 헤더를 추가합니다. |
BeginGetRequestStream(AsyncCallback, Object) |
데이터를 쓰는 데 사용할 Stream 개체에 대한 비동기 요청을 시작합니다. |
BeginGetResponse(AsyncCallback, Object) |
인터넷 리소스에 대한 비동기 요청을 시작합니다. |
CreateObjRef(Type) |
원격 개체와 통신하는 데 사용되는 프록시 생성에 필요한 모든 관련 정보가 들어 있는 개체를 만듭니다. (다음에서 상속됨 MarshalByRefObject) |
EndGetRequestStream(IAsyncResult) |
데이터를 쓰는 데 사용할 Stream 개체에 대한 비동기 요청을 끝냅니다. |
EndGetRequestStream(IAsyncResult, TransportContext) |
데이터를 쓰는 데 사용하는 Stream 개체에 대한 비동기 요청을 종료하고 해당 스트림과 연결된 TransportContext를 출력합니다. |
EndGetResponse(IAsyncResult) |
인터넷 리소스에 대한 비동기 요청을 종료합니다. |
Equals(Object) |
지정된 개체가 현재 개체와 같은지 확인합니다. (다음에서 상속됨 Object) |
GetHashCode() |
WebRequest 인스턴스에 대한 해시 값을 반환합니다. |
GetHashCode() |
기본 해시 함수로 작동합니다. (다음에서 상속됨 Object) |
GetLifetimeService() |
사용되지 않음.
이 인스턴스의 수명 정책을 제어하는 현재의 수명 서비스 개체를 검색합니다. (다음에서 상속됨 MarshalByRefObject) |
GetObjectData(SerializationInfo, StreamingContext) |
사용되지 않음.
사용되지 않음.
사용되지 않음.
대상 개체를 serialize하는 데 필요한 데이터로 SerializationInfo를 채웁니다. |
GetObjectData(SerializationInfo, StreamingContext) |
사용되지 않음.
대상 개체를 직렬화하는 데 필요한 데이터로 SerializationInfo를 채웁니다. (다음에서 상속됨 WebRequest) |
GetRequestStream() |
요청 데이터를 쓰는 데 사용할 Stream 개체를 가져옵니다. |
GetRequestStream() |
서브클래스에서 재정의될 때, 인터넷 리소스에 데이터를 쓰기 위해 Stream을 반환합니다. (다음에서 상속됨 WebRequest) |
GetRequestStream(TransportContext) |
요청 데이터를 쓰는 데 사용하는 Stream 개체를 가져오고 해당 스트림과 연결된 TransportContext를 출력합니다. |
GetRequestStreamAsync() |
서브클래스에서 재정의될 때, 인터넷 리소스에 비동기 작업으로 데이터를 쓰기 위해 Stream을 반환합니다. (다음에서 상속됨 WebRequest) |
GetResponse() |
인터넷 리소스에서의 응답을 반환합니다. |
GetResponse() |
서브클래스에 재정의될 때, 인터넷 요청에 대한 응답을 반환합니다. (다음에서 상속됨 WebRequest) |
GetResponseAsync() |
서브클래스에 재정의될 때, 인터넷 요청에 대한 응답을 비동기 작업으로 반환합니다. (다음에서 상속됨 WebRequest) |
GetType() |
현재 인스턴스의 Type을 가져옵니다. (다음에서 상속됨 Object) |
InitializeLifetimeService() |
사용되지 않음.
이 인스턴스의 수명 정책을 제어하는 수명 서비스 개체를 가져옵니다. (다음에서 상속됨 MarshalByRefObject) |
MemberwiseClone() |
현재 Object의 단순 복사본을 만듭니다. (다음에서 상속됨 Object) |
MemberwiseClone(Boolean) |
현재 MarshalByRefObject 개체의 단순 복사본을 만듭니다. (다음에서 상속됨 MarshalByRefObject) |
ToString() |
현재 개체를 나타내는 문자열을 반환합니다. (다음에서 상속됨 Object) |
명시적 인터페이스 구현
ISerializable.GetObjectData(SerializationInfo, StreamingContext) |
사용되지 않음.
사용되지 않음.
사용되지 않음.
대상 개체를 직렬화하는 데 필요한 데이터로 SerializationInfo를 채웁니다. |
확장 메서드
GetRequestMetadata(HttpWebRequest) |
원격 분석 목적으로 사용할 나가는 요청에 대한 메타데이터를 가져옵니다. |
SetRequestMetadata(HttpWebRequest, RequestMetadata) |
원격 분석 목적으로 사용할 나가는 요청에 대한 메타데이터를 설정합니다. |
적용 대상
추가 정보
.NET
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기