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/")
설명
주의
WebRequest
, HttpWebRequest
, ServicePoint
및 WebClient
사용되지 않으므로 새 개발에 사용하면 안 됩니다. 대신 HttpClient 사용합니다.
HttpWebRequest 클래스는 WebRequest 정의된 속성 및 메서드와 사용자가 HTTP를 사용하여 서버와 직접 상호 작용할 수 있도록 하는 추가 속성 및 메서드를 지원합니다.
HttpWebRequest 생성자를 사용하지 마세요.
WebRequest.Create 메서드를 사용하여 새 HttpWebRequest 개체를 초기화합니다. URI(Uniform Resource Identifier)에 대한 체계가 http://
또는 https://
경우 CreateHttpWebRequest 개체를 반환합니다.
GetResponse 메서드는 RequestUri 속성에 지정된 리소스에 동기 요청을 수행하고 응답 개체가 포함된 HttpWebResponse 반환합니다. 응답 데이터는 GetResponseStream반환된 스트림을 사용하여 수신할 수 있습니다. 응답 개체 또는 응답 스트림이 닫히면 나머지 데이터는 몰수됩니다. 나머지 데이터는 드레이닝되고 응답 개체를 닫을 때 후속 요청에 소켓이 다시 사용됩니다. 즉, 유지 또는 파이프라인된 요청이거나, 소량의 데이터만 수신해야 하며, 나머지 데이터는 약간의 시간 간격으로 수신됩니다. 언급된 조건이 없거나 드레이닝 시간을 초과하면 소켓이 닫힙니다. 연결 유지 또는 파이프라인 연결의 경우 EOF까지 애플리케이션이 스트림을 읽는 것이 좋습니다. 이렇게 하면 후속 요청에 소켓이 다시 사용되어 성능이 향상되고 사용되는 리소스가 줄어듭니다.
리소스에 데이터를 보내려는 경우 GetRequestStream 메서드는 데이터를 보내는 데 사용할 Stream 개체를 반환합니다. BeginGetRequestStream 및 EndGetRequestStream 메서드는 데이터 스트림 보내기에 대한 비동기 액세스를 제공합니다.
HttpWebRequest클라이언트 인증의 경우 클라이언트 인증서를 현재 사용자의 내 인증서 저장소에 설치해야 합니다.
HttpWebRequest 클래스는 리소스에 액세스하는 동안 오류가 발생할 때 WebException throw합니다. WebException.Status 속성에는 오류의 원인을 나타내는 WebExceptionStatus 값이 포함되어 있습니다. WebException.Status WebExceptionStatus.ProtocolError경우 Response 속성에는 리소스에서 받은 HttpWebResponse 포함됩니다.
HttpWebRequest 인터넷 리소스에 전송된 일반적인 HTTP 헤더 값을 속성으로 노출하거나, 메서드로 설정하거나, 시스템에서 설정합니다. 다음 표에는 전체 목록이 포함되어 있습니다. Headers 속성의 다른 헤더를 이름/값 쌍으로 설정할 수 있습니다. 서버 및 캐시는 요청 중에 헤더를 변경하거나 추가할 수 있습니다.
다음 표에서는 속성 또는 메서드 또는 시스템에 의해 설정된 HTTP 헤더를 나열합니다.
머리글 | 설정 기준 |
---|---|
Accept |
Accept 속성에 의해 설정됩니다. |
Connection |
Connection 속성, KeepAlive 속성에 의해 설정됩니다. |
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 자동으로 등록됩니다.
http://
또는 https://
시작하는 URI를 사용하기 전에 RegisterPrefix 메서드를 호출하여 System.Net.HttpWebRequest 등록할 필요가 없습니다.
로컬 컴퓨터 또는 애플리케이션 구성 파일은 기본 프록시를 사용할지 지정할 수 있습니다. 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) |
사용되지 않음.
사용되지 않음.
사용되지 않음.
사용되지 않음.
SerializationInfo 및 StreamingContext 클래스의 지정된 인스턴스에서 HttpWebRequest 클래스의 새 인스턴스를 초기화합니다. 이 생성자는 사용되지 않습니다. |
속성
Accept |
|
Address |
요청에 실제로 응답하는 인터넷 리소스의 URI(Uniform Resource Identifier)를 가져옵니다. |
AllowAutoRedirect |
요청이 리디렉션 응답을 따라야 하는지 여부를 나타내는 값을 가져오거나 설정합니다. |
AllowReadStreamBuffering |
인터넷 리소스에서 받은 값을 버퍼링할지 여부를 나타내는 값을 가져오거나 설정합니다. |
AllowWriteStreamBuffering |
인터넷 리소스로 전송된 데이터를 버퍼링할지 여부를 나타내는 값을 가져오거나 설정합니다. |
AuthenticationLevel |
이 요청에 사용되는 인증 및 가장 수준을 나타내는 값을 가져오거나 설정합니다. (다음에서 상속됨 WebRequest) |
AutomaticDecompression |
사용되는 압축 해제 유형을 가져오거나 설정합니다. |
CachePolicy |
이 요청에 대한 캐시 정책을 가져오거나 설정합니다. (다음에서 상속됨 WebRequest) |
ClientCertificates |
이 요청과 연결된 보안 인증서의 컬렉션을 가져오거나 설정합니다. |
Connection |
|
ConnectionGroupName |
요청에 대한 연결 그룹의 이름을 가져오거나 설정합니다. |
ConnectionGroupName |
하위 클래스에서 재정의되는 경우 요청에 대한 연결 그룹의 이름을 가져오거나 설정합니다. (다음에서 상속됨 WebRequest) |
ContentLength |
|
ContentLength |
하위 클래스에서 재정의되는 경우 전송되는 요청 데이터의 콘텐츠 길이를 가져오거나 설정합니다. (다음에서 상속됨 WebRequest) |
ContentType |
|
ContinueDelegate |
인터넷 리소스에서 HTTP 100-continue 응답을 받을 때 호출되는 대리자 메서드를 가져오거나 설정합니다. |
ContinueTimeout |
서버에서 100-Continue가 수신될 때까지 대기할 시간 제한(밀리초)을 가져오거나 설정합니다. |
CookieContainer |
요청과 연결된 쿠키를 가져오거나 설정합니다. |
CreatorInstance |
사용되지 않음.
하위 클래스에서 재정의되는 경우 지정된 URI에 대한 요청을 만들기 위해 인스턴스화된 WebRequest 만드는 데 사용되는 IWebRequestCreate 클래스에서 파생된 팩터리 개체를 가져옵니다. (다음에서 상속됨 WebRequest) |
Credentials |
요청에 대한 인증 정보를 가져오거나 설정합니다. |
Date |
HTTP 요청에 사용할 |
DefaultCachePolicy |
이 요청에 대한 기본 캐시 정책을 가져오거나 설정합니다. |
DefaultMaximumErrorResponseLength |
HTTP 오류 응답의 기본 최대 길이를 가져오거나 설정합니다. |
DefaultMaximumResponseHeadersLength |
MaximumResponseHeadersLength 속성의 기본값을 가져오거나 설정합니다. |
Expect |
|
HaveResponse |
인터넷 리소스에서 응답을 받았는지 여부를 나타내는 값을 가져옵니다. |
Headers |
HTTP 헤더를 구성하는 이름/값 쌍의 컬렉션을 지정합니다. |
Host |
요청 URI와 독립적으로 HTTP 요청에 사용할 호스트 헤더 값을 가져오거나 설정합니다. |
IfModifiedSince |
|
ImpersonationLevel |
현재 요청에 대한 가장 수준을 가져오거나 설정합니다. (다음에서 상속됨 WebRequest) |
KeepAlive |
인터넷 리소스에 영구적으로 연결할지 여부를 나타내는 값을 가져오거나 설정합니다. |
MaximumAutomaticRedirections |
요청이 따르는 최대 리디렉션 수를 가져오거나 설정합니다. |
MaximumResponseHeadersLength |
응답 헤더의 허용되는 최대 길이를 가져오거나 설정합니다. |
MediaType |
요청의 미디어 형식을 가져오거나 설정합니다. |
Method |
요청에 대한 메서드를 가져오거나 설정합니다. |
Pipelined |
인터넷 리소스에 요청을 파이프라인할지 여부를 나타내는 값을 가져오거나 설정합니다. |
PreAuthenticate |
요청과 함께 Authorization 헤더를 보낼지 여부를 나타내는 값을 가져오거나 설정합니다. |
PreAuthenticate |
하위 클래스에서 재정의되는 경우 요청을 미리 인증할지 여부를 나타냅니다. (다음에서 상속됨 WebRequest) |
ProtocolVersion |
요청에 사용할 HTTP 버전을 가져오거나 설정합니다. |
Proxy |
요청에 대한 프록시 정보를 가져오거나 설정합니다. |
Proxy |
하위 클래스에서 재정의되는 경우 이 인터넷 리소스에 액세스하는 데 사용할 네트워크 프록시를 가져오거나 설정합니다. (다음에서 상속됨 WebRequest) |
ReadWriteTimeout |
스트림에 쓰거나 스트림에서 읽을 때 시간 제한(밀리초)을 가져오거나 설정합니다. |
Referer |
|
RequestUri |
요청의 원래 URI(Uniform Resource Identifier)를 가져옵니다. |
SendChunked |
세그먼트의 데이터를 인터넷 리소스로 보낼지 여부를 나타내는 값을 가져오거나 설정합니다. |
ServerCertificateValidationCallback |
서버 인증서의 유효성을 검사하는 콜백 함수를 가져오거나 설정합니다. |
ServicePoint |
요청에 사용할 서비스 지점을 가져옵니다. |
SupportsCookieContainer |
요청이 CookieContainer대한 지원을 제공하는지 여부를 나타내는 값을 가져옵니다. |
Timeout |
GetResponse() 및 GetRequestStream() 메서드의 제한 시간 값을 밀리초 단위로 가져오거나 설정합니다. |
Timeout |
요청 시간이 초과되기 전의 시간 길이(밀리초)를 가져오거나 설정합니다. (다음에서 상속됨 WebRequest) |
TransferEncoding |
|
UnsafeAuthenticatedConnectionSharing |
고속 NTLM 인증 연결 공유를 허용할지 여부를 나타내는 값을 가져오거나 설정합니다. |
UseDefaultCredentials |
기본 자격 증명이 요청과 함께 전송되는지 여부를 제어하는 Boolean 값을 가져오거나 설정합니다. |
UseDefaultCredentials |
하위 클래스에서 재정의되는 경우 요청과 함께 DefaultCredentials 전송되는지 여부를 제어하는 Boolean 값을 가져오거나 설정합니다. (다음에서 상속됨 WebRequest) |
UserAgent |
|
메서드
Abort() |
인터넷 리소스에 대한 요청을 취소합니다. |
AddRange(Int32) |
요청된 데이터의 시작 또는 끝에서 특정 범위에 대한 요청에 바이트 범위 헤더를 추가합니다. |
AddRange(Int32, Int32) |
지정된 범위에 대한 요청에 바이트 범위 헤더를 추가합니다. |
AddRange(Int64) |
요청된 데이터의 시작 또는 끝에서 특정 범위에 대한 요청에 바이트 범위 헤더를 추가합니다. |
AddRange(Int64, Int64) |
지정된 범위에 대한 요청에 바이트 범위 헤더를 추가합니다. |
AddRange(String, Int32) |
요청된 데이터의 시작 또는 끝에서 특정 범위에 대한 요청에 범위 헤더를 추가합니다. |
AddRange(String, Int32, Int32) |
지정된 범위에 대한 요청에 범위 헤더를 추가합니다. |
AddRange(String, Int64) |
요청된 데이터의 시작 또는 끝에서 특정 범위에 대한 요청에 범위 헤더를 추가합니다. |
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) |
사용되지 않음.
대상 개체를 serialize하는 데 필요한 데이터로 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) |
사용되지 않음.
사용되지 않음.
사용되지 않음.
대상 개체를 serialize하는 데 필요한 데이터로 SerializationInfo 채웁니다. |
확장 메서드
GetRequestMetadata(HttpWebRequest) |
원격 분석 용도로 사용할 나가는 요청에 대한 메타데이터를 가져옵니다. |
SetRequestMetadata(HttpWebRequest, RequestMetadata) |
원격 분석 목적으로 사용할 나가는 요청에 대한 메타데이터를 설정합니다. |
적용 대상
추가 정보
- DefaultProxy 요소(네트워크 설정)
- 버전 3.5 SP1 HTTPWebRequest에 대한 NTLM 인증 변경 내용
.NET