다음을 통해 공유


HttpWebRequest 클래스

정의

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
상속
HttpWebRequest
상속
특성
구현

예제

다음 코드 예제에서는 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, ServicePointWebClient 사용되지 않으므로 새 개발에 사용하면 안 됩니다. 대신 HttpClient 사용합니다.

HttpWebRequest 클래스는 WebRequest 정의된 속성 및 메서드와 사용자가 HTTP를 사용하여 서버와 직접 상호 작용할 수 있도록 하는 추가 속성 및 메서드를 지원합니다.

HttpWebRequest 생성자를 사용하지 마세요. WebRequest.Create 메서드를 사용하여 새 HttpWebRequest 개체를 초기화합니다. URI(Uniform Resource Identifier)에 대한 체계가 http:// 또는 https://경우 CreateHttpWebRequest 개체를 반환합니다.

GetResponse 메서드는 RequestUri 속성에 지정된 리소스에 동기 요청을 수행하고 응답 개체가 포함된 HttpWebResponse 반환합니다. 응답 데이터는 GetResponseStream반환된 스트림을 사용하여 수신할 수 있습니다. 응답 개체 또는 응답 스트림이 닫히면 나머지 데이터는 몰수됩니다. 나머지 데이터는 드레이닝되고 응답 개체를 닫을 때 후속 요청에 소켓이 다시 사용됩니다. 즉, 유지 또는 파이프라인된 요청이거나, 소량의 데이터만 수신해야 하며, 나머지 데이터는 약간의 시간 간격으로 수신됩니다. 언급된 조건이 없거나 드레이닝 시간을 초과하면 소켓이 닫힙니다. 연결 유지 또는 파이프라인 연결의 경우 EOF까지 애플리케이션이 스트림을 읽는 것이 좋습니다. 이렇게 하면 후속 요청에 소켓이 다시 사용되어 성능이 향상되고 사용되는 리소스가 줄어듭니다.

리소스에 데이터를 보내려는 경우 GetRequestStream 메서드는 데이터를 보내는 데 사용할 Stream 개체를 반환합니다. BeginGetRequestStreamEndGetRequestStream 메서드는 데이터 스트림 보내기에 대한 비동기 액세스를 제공합니다.

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)
사용되지 않음.
사용되지 않음.
사용되지 않음.
사용되지 않음.

SerializationInfoStreamingContext 클래스의 지정된 인스턴스에서 HttpWebRequest 클래스의 새 인스턴스를 초기화합니다. 이 생성자는 사용되지 않습니다.

속성

Accept

Accept HTTP 헤더의 값을 가져오거나 설정합니다.

Address

요청에 실제로 응답하는 인터넷 리소스의 URI(Uniform Resource Identifier)를 가져옵니다.

AllowAutoRedirect

요청이 리디렉션 응답을 따라야 하는지 여부를 나타내는 값을 가져오거나 설정합니다.

AllowReadStreamBuffering

인터넷 리소스에서 받은 값을 버퍼링할지 여부를 나타내는 값을 가져오거나 설정합니다.

AllowWriteStreamBuffering

인터넷 리소스로 전송된 데이터를 버퍼링할지 여부를 나타내는 값을 가져오거나 설정합니다.

AuthenticationLevel

이 요청에 사용되는 인증 및 가장 수준을 나타내는 값을 가져오거나 설정합니다.

(다음에서 상속됨 WebRequest)
AutomaticDecompression

사용되는 압축 해제 유형을 가져오거나 설정합니다.

CachePolicy

이 요청에 대한 캐시 정책을 가져오거나 설정합니다.

(다음에서 상속됨 WebRequest)
ClientCertificates

이 요청과 연결된 보안 인증서의 컬렉션을 가져오거나 설정합니다.

Connection

Connection HTTP 헤더의 값을 가져오거나 설정합니다.

ConnectionGroupName

요청에 대한 연결 그룹의 이름을 가져오거나 설정합니다.

ConnectionGroupName

하위 클래스에서 재정의되는 경우 요청에 대한 연결 그룹의 이름을 가져오거나 설정합니다.

(다음에서 상속됨 WebRequest)
ContentLength

Content-length HTTP 헤더를 가져오거나 설정합니다.

ContentLength

하위 클래스에서 재정의되는 경우 전송되는 요청 데이터의 콘텐츠 길이를 가져오거나 설정합니다.

(다음에서 상속됨 WebRequest)
ContentType

Content-type HTTP 헤더의 값을 가져오거나 설정합니다.

ContinueDelegate

인터넷 리소스에서 HTTP 100-continue 응답을 받을 때 호출되는 대리자 메서드를 가져오거나 설정합니다.

ContinueTimeout

서버에서 100-Continue가 수신될 때까지 대기할 시간 제한(밀리초)을 가져오거나 설정합니다.

CookieContainer

요청과 연결된 쿠키를 가져오거나 설정합니다.

CreatorInstance
사용되지 않음.

하위 클래스에서 재정의되는 경우 지정된 URI에 대한 요청을 만들기 위해 인스턴스화된 WebRequest 만드는 데 사용되는 IWebRequestCreate 클래스에서 파생된 팩터리 개체를 가져옵니다.

(다음에서 상속됨 WebRequest)
Credentials

요청에 대한 인증 정보를 가져오거나 설정합니다.

Date

HTTP 요청에 사용할 Date HTTP 헤더 값을 가져오거나 설정합니다.

DefaultCachePolicy

이 요청에 대한 기본 캐시 정책을 가져오거나 설정합니다.

DefaultMaximumErrorResponseLength

HTTP 오류 응답의 기본 최대 길이를 가져오거나 설정합니다.

DefaultMaximumResponseHeadersLength

MaximumResponseHeadersLength 속성의 기본값을 가져오거나 설정합니다.

Expect

Expect HTTP 헤더의 값을 가져오거나 설정합니다.

HaveResponse

인터넷 리소스에서 응답을 받았는지 여부를 나타내는 값을 가져옵니다.

Headers

HTTP 헤더를 구성하는 이름/값 쌍의 컬렉션을 지정합니다.

Host

요청 URI와 독립적으로 HTTP 요청에 사용할 호스트 헤더 값을 가져오거나 설정합니다.

IfModifiedSince

If-Modified-Since HTTP 헤더의 값을 가져오거나 설정합니다.

ImpersonationLevel

현재 요청에 대한 가장 수준을 가져오거나 설정합니다.

(다음에서 상속됨 WebRequest)
KeepAlive

인터넷 리소스에 영구적으로 연결할지 여부를 나타내는 값을 가져오거나 설정합니다.

MaximumAutomaticRedirections

요청이 따르는 최대 리디렉션 수를 가져오거나 설정합니다.

MaximumResponseHeadersLength

응답 헤더의 허용되는 최대 길이를 가져오거나 설정합니다.

MediaType

요청의 미디어 형식을 가져오거나 설정합니다.

Method

요청에 대한 메서드를 가져오거나 설정합니다.

Pipelined

인터넷 리소스에 요청을 파이프라인할지 여부를 나타내는 값을 가져오거나 설정합니다.

PreAuthenticate

요청과 함께 Authorization 헤더를 보낼지 여부를 나타내는 값을 가져오거나 설정합니다.

PreAuthenticate

하위 클래스에서 재정의되는 경우 요청을 미리 인증할지 여부를 나타냅니다.

(다음에서 상속됨 WebRequest)
ProtocolVersion

요청에 사용할 HTTP 버전을 가져오거나 설정합니다.

Proxy

요청에 대한 프록시 정보를 가져오거나 설정합니다.

Proxy

하위 클래스에서 재정의되는 경우 이 인터넷 리소스에 액세스하는 데 사용할 네트워크 프록시를 가져오거나 설정합니다.

(다음에서 상속됨 WebRequest)
ReadWriteTimeout

스트림에 쓰거나 스트림에서 읽을 때 시간 제한(밀리초)을 가져오거나 설정합니다.

Referer

Referer HTTP 헤더의 값을 가져오거나 설정합니다.

RequestUri

요청의 원래 URI(Uniform Resource Identifier)를 가져옵니다.

SendChunked

세그먼트의 데이터를 인터넷 리소스로 보낼지 여부를 나타내는 값을 가져오거나 설정합니다.

ServerCertificateValidationCallback

서버 인증서의 유효성을 검사하는 콜백 함수를 가져오거나 설정합니다.

ServicePoint

요청에 사용할 서비스 지점을 가져옵니다.

SupportsCookieContainer

요청이 CookieContainer대한 지원을 제공하는지 여부를 나타내는 값을 가져옵니다.

Timeout

GetResponse()GetRequestStream() 메서드의 제한 시간 값을 밀리초 단위로 가져오거나 설정합니다.

Timeout

요청 시간이 초과되기 전의 시간 길이(밀리초)를 가져오거나 설정합니다.

(다음에서 상속됨 WebRequest)
TransferEncoding

Transfer-encoding HTTP 헤더의 값을 가져오거나 설정합니다.

UnsafeAuthenticatedConnectionSharing

고속 NTLM 인증 연결 공유를 허용할지 여부를 나타내는 값을 가져오거나 설정합니다.

UseDefaultCredentials

기본 자격 증명이 요청과 함께 전송되는지 여부를 제어하는 Boolean 값을 가져오거나 설정합니다.

UseDefaultCredentials

하위 클래스에서 재정의되는 경우 요청과 함께 DefaultCredentials 전송되는지 여부를 제어하는 Boolean 값을 가져오거나 설정합니다.

(다음에서 상속됨 WebRequest)
UserAgent

User-agent HTTP 헤더의 값을 가져오거나 설정합니다.

메서드

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)

원격 분석 목적으로 사용할 나가는 요청에 대한 메타데이터를 설정합니다.

적용 대상

추가 정보