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

예제

다음 코드 예제에서는 URIhttp://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 사용자가 HTTP를 사용하여 서버와 직접 상호 작용할 수 있도록 하는 추가 속성 및 메서드 및 정의된 WebRequest 속성 및 메서드에 대한 지원을 제공합니다.

생성자를 사용하지 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 속성에는 Response HttpWebResponse 리소스에서 받은 항목이 포함됩니다.

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 의해 설정됩니다true(속성이어야 SendChunked 합니다).
User-Agent 속성에 의해 설정됩니다 UserAgent .

참고

HttpWebRequest 가 자동으로 등록됩니다. URI를 시작하거나 https://URI를 사용하기 전에 등록 System.Net.HttpWebRequest 할 메서드를 http:// 호출 RegisterPrefix 할 필요가 없습니다.

로컬 컴퓨터 또는 애플리케이션 구성 파일을 기본 프록시를 사용할 수 있는지 지정할 수 있습니다. 경우는 Proxy 속성을 지정 하면에서 프록시 설정을 Proxy 로컬 컴퓨터 또는 애플리케이션 구성 파일을 재정의 하는 속성 및 HttpWebRequest 인스턴스는 지정 된 프록시 설정을 사용 합니다. 구성 파일에 Proxy 프록시가 지정되지 않고 속성이 지정 HttpWebRequest 되지 않은 경우 클래스는 로컬 컴퓨터의 Internet Explorer에서 상속된 프록시 설정을 사용합니다. Internet Explorer에 프록시 설정이 없으면 요청이 서버로 직접 전송됩니다.

이 클래스는 HttpWebRequest Internet Explorer에서 상속된 와일드카드 문자가 Internet Explorer에서 직접 구문 분석되는 바이패스 목록과 다르게 프록시 바이패스 목록을 구문 분석합니다. 예를 들어 클래스는 HttpWebRequest Internet Explorer에서 "nt*"의 바이패스 목록을 "nt.$"의 정규식으로 구문 분석합니다. Internet Explorer의 네이티브 동작과 다릅니다. 따라서 "http://intxxxxx"의 URL은 클래스를 사용하여 프록시를 HttpWebRequest 바이패스하지만 Internet Explorer를 사용하여 프록시를 바이패스하지는 않습니다.

참고

프레임워크는 SSL 세션을 만들 때 캐시하고 가능한 경우 새 요청에 캐시된 세션을 다시 사용하려고 시도합니다. SSL 세션을 다시 사용하려고 할 때 프레임워크는 첫 번째 요소 ClientCertificates (있는 경우)를 사용하거나 비어 있는 경우 ClientCertificates 익명 세션을 다시 사용하려고 합니다.

참고

보안상의 이유로 쿠키는 기본적으로 사용하지 않도록 설정됩니다. 쿠키를 사용하려면 이 속성을 사용하여 CookieContainer 쿠키를 사용하도록 설정합니다.

.NET Framework 4.6에는 연결에 대한 안전하지 않은 암호 및 해시 알고리즘을 차단하는 새로운 보안 기능이 포함되어 있습니다. HttpClient, HttpWebRequest, FTPClient, SmtpClient, SslStream 등과 같은 API를 통해 TLS/SSL을 사용하고 .NET Framework 4.6을 대상으로 하는 애플리케이션은 기본적으로 더 안전한 동작을 가져옵니다.

개발자는 기존 SSL3 서비스 또는 TLS(RC4 서비스)와의 상호 운용성을 유지하기 위해 이 동작을 옵트아웃(opt out)할 수 있습니다. 이 문서에서 는 새 동작을 사용하지 않도록 코드를 수정하는 방법을 설명합니다.

생성자

HttpWebRequest()
사용되지 않습니다.
사용되지 않습니다.

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

HttpWebRequest(SerializationInfo, StreamingContext)
사용되지 않습니다.
사용되지 않습니다.
사용되지 않습니다.
사용되지 않습니다.
사용되지 않습니다.

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

HttpWebRequest(Uri)

속성

Accept

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

Address

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

AllowAutoRedirect

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

AllowReadStreamBuffering

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

AllowWriteStreamBuffering

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

AuthenticationLevel

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

(다음에서 상속됨 WebRequest)
AutomaticDecompression

압축을 푸는 데 사용할 형식을 가져오거나 설정합니다.

CachePolicy

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

(다음에서 상속됨 WebRequest)
ClientCertificates

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

Connection

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

ConnectionGroupName

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

ConnectionGroupName

파생 클래스에서 재정의될 때 요청에 대한 연결 그룹 이름을 가져오거나 설정합니다.

(다음에서 상속됨 WebRequest)
ContentLength

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

ContentLength

서브클래스에서 재정의될 때, 전송 중인 요청 데이터의 콘텐츠 길이를 가져오거나 설정합니다.

(다음에서 상속됨 WebRequest)
ContentType

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

ContinueDelegate

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

ContinueTimeout

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

CookieContainer

이 요청과 관련된 쿠키를 가져오거나 설정합니다.

CreatorInstance
사용되지 않습니다.

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

(다음에서 상속됨 WebRequest)
Credentials

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

Date

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

DefaultCachePolicy

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

DefaultMaximumErrorResponseLength

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

DefaultMaximumResponseHeadersLength

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

Expect

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

HaveResponse

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

Headers

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

Host

요청 URI와 독립적인 HTTP 요청에 사용할 Host 헤더 값을 가져오거나 설정합니다.

IfModifiedSince

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

ImpersonationLevel

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

(다음에서 상속됨 WebRequest)
KeepAlive

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

MaximumAutomaticRedirections

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

MaximumResponseHeadersLength

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

MediaType

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

Method

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

Pipelined

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

PreAuthenticate

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

PreAuthenticate

서브클래스에서 재정의될 때, 요청을 사전 인증할지 여부를 나타냅니다.

(다음에서 상속됨 WebRequest)
ProtocolVersion

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

Proxy

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

Proxy

서브클래스에서 재정의될 때, 이 인터넷 리소스에 액세스하기 위해 사용할 네트워크 프록시를 가져오거나 설정합니다.

(다음에서 상속됨 WebRequest)
ReadWriteTimeout

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

Referer

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

RequestUri

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

SendChunked

인터넷 리소스에 데이터를 분할된 형태로 보낼 것인지 여부를 나타내는 값을 가져오거나 설정합니다.

ServerCertificateValidationCallback

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

ServicePoint

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

SupportsCookieContainer

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

Timeout

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

Timeout

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

(다음에서 상속됨 WebRequest)
TransferEncoding

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

UnsafeAuthenticatedConnectionSharing

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

UseDefaultCredentials

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

UseDefaultCredentials

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

(다음에서 상속됨 WebRequest)
UserAgent

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

메서드

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를 채웁니다.

적용 대상

추가 정보