다음을 통해 공유


HttpWebRequest.GetRequestStream 메서드

정의

요청 데이터를 쓰는 데 사용할 Stream 개체를 가져옵니다.

오버로드

GetRequestStream()

요청 데이터를 쓰는 데 사용할 Stream 개체를 가져옵니다.

GetRequestStream(TransportContext)

요청 데이터를 작성하는 데 사용할 Stream 개체를 가져오고 스트림과 연결된 TransportContext 출력합니다.

GetRequestStream()

Source:
HttpWebRequest.cs
Source:
HttpWebRequest.cs
Source:
HttpWebRequest.cs

요청 데이터를 쓰는 데 사용할 Stream 개체를 가져옵니다.

public:
 override System::IO::Stream ^ GetRequestStream();
public override System.IO.Stream GetRequestStream ();
override this.GetRequestStream : unit -> System.IO.Stream
Public Overrides Function GetRequestStream () As Stream

반환

요청 데이터를 작성하는 데 사용할 Stream.

예외

Method 속성은 GET 또는 HEAD입니다.

-또는-

KeepAlive true, AllowWriteStreamBufferingfalse, ContentLength -1, SendChunkedfalse, Method POST 또는 PUT입니다.

GetRequestStream() 메서드를 두 번 이상 호출합니다.

-또는-

TransferEncoding 값으로 설정되고 SendChunkedfalse.

요청 캐시 유효성 검사기는 이 요청에 대한 응답을 캐시에서 처리할 수 있음을 나타냅니다. 그러나 데이터를 쓰는 요청은 캐시를 사용하지 않아야 합니다. 이 예외는 잘못 구현된 사용자 지정 캐시 유효성 검사기를 사용하는 경우에 발생할 수 있습니다.

Abort() 이전에 호출되었습니다.

-또는-

요청에 대한 제한 시간이 만료되었습니다.

-또는-

요청을 처리하는 동안 오류가 발생했습니다.

.NET Compact Framework 애플리케이션에서 콘텐츠 길이가 0인 요청 스트림을 올바르게 가져오고 닫지 않았습니다. 콘텐츠 길이가 0인 요청을 처리하는 방법에 대한 자세한 내용은 .NET Compact Framework네트워크 프로그래밍을 참조하세요.

예제

다음 코드 예제에서는 GetRequestStream 메서드를 사용하여 스트림 인스턴스를 반환합니다.

// Set the 'Method' property of the 'Webrequest' to 'POST'.
myHttpWebRequest->Method = "POST";
Console::WriteLine( "\nPlease enter the data to be posted to the (http://www.contoso.com/codesnippets/next.asp) Uri :" );

// Create a new String* Object* to POST data to the Url.
String^ inputData = Console::ReadLine();

String^ postData = String::Concat( "firstone= ", inputData );
ASCIIEncoding^ encoding = gcnew ASCIIEncoding;
array<Byte>^ byte1 = encoding->GetBytes( postData );

// Set the content type of the data being posted.
myHttpWebRequest->ContentType = "application/x-www-form-urlencoded";

// Set the content length of the String* being posted.
myHttpWebRequest->ContentLength = byte1->Length;

Stream^ newStream = myHttpWebRequest->GetRequestStream();

newStream->Write( byte1, 0, byte1->Length );
Console::WriteLine( "The value of 'ContentLength' property after sending the data is {0}", myHttpWebRequest->ContentLength );

// Close the Stream Object*.
newStream->Close();
// Set the 'Method' property of the 'Webrequest' to 'POST'.
myHttpWebRequest.Method = "POST";
Console.WriteLine ("\nPlease enter the data to be posted to the (http://www.contoso.com/codesnippets/next.asp) Uri :");

// Create a new string object to POST data to the Url.
string inputData = Console.ReadLine ();


string postData = "firstone=" + inputData;
ASCIIEncoding encoding = new ASCIIEncoding ();
byte[] byte1 = encoding.GetBytes (postData);

// Set the content type of the data being posted.
myHttpWebRequest.ContentType = "application/x-www-form-urlencoded";

// Set the content length of the string being posted.
myHttpWebRequest.ContentLength = byte1.Length;

Stream newStream = myHttpWebRequest.GetRequestStream ();

newStream.Write (byte1, 0, byte1.Length);
Console.WriteLine ("The value of 'ContentLength' property after sending the data is {0}", myHttpWebRequest.ContentLength);

// Close the Stream object.
newStream.Close ();
' Set the 'Method' property of the 'Webrequest' to 'POST'.
myHttpWebRequest.Method = "POST"

Console.WriteLine(ControlChars.Cr + "Please enter the data to be posted to the (http://www.contoso.com/codesnippets/next.asp) Uri :")
' Create a new string object to POST data to the Url.
Dim inputData As String = Console.ReadLine()
Dim postData As String = "firstone" + ChrW(61) + inputData
Dim encoding As New ASCIIEncoding()
Dim byte1 As Byte() = encoding.GetBytes(postData)
' Set the content type of the data being posted.
myHttpWebRequest.ContentType = "application/x-www-form-urlencoded"
' Set the content length of the string being posted.
myHttpWebRequest.ContentLength = byte1.Length
Dim newStream As Stream = myHttpWebRequest.GetRequestStream()
newStream.Write(byte1, 0, byte1.Length)
Console.WriteLine("The value of 'ContentLength' property after sending the data is {0}", myHttpWebRequest.ContentLength)
newStream.Close()

설명

주의

WebRequest, HttpWebRequest, ServicePointWebClient 사용되지 않으므로 새 개발에 사용하면 안 됩니다. 대신 HttpClient 사용합니다.

GetRequestStream 메서드는 HttpWebRequest데이터를 보내는 데 사용할 스트림을 반환합니다. Stream 개체가 반환된 후 Stream.Write 메서드를 사용하여 HttpWebRequest 데이터를 보낼 수 있습니다.

애플리케이션이 ContentLength 속성의 값을 설정해야 하는 경우 스트림을 검색하기 전에 이 작업을 수행해야 합니다.

스트림을 닫고 다시 사용할 연결을 해제하려면 Stream.Close 메서드를 호출해야 합니다. 스트림을 닫지 않으면 애플리케이션에 연결이 부족합니다.

메모

애플리케이션은 특정 요청에 대해 동기 및 비동기 메서드를 혼합할 수 없습니다. GetRequestStream 메서드를 호출하는 경우 GetResponse 메서드를 사용하여 응답을 검색해야 합니다.

메모

이 멤버는 애플리케이션에서 네트워크 추적을 사용하도록 설정할 때 추적 정보를 출력합니다. 자세한 내용은 .NET Framework네트워크 추적을 참조하세요.

추가 정보

적용 대상

GetRequestStream(TransportContext)

Source:
HttpWebRequest.cs
Source:
HttpWebRequest.cs
Source:
HttpWebRequest.cs

요청 데이터를 작성하는 데 사용할 Stream 개체를 가져오고 스트림과 연결된 TransportContext 출력합니다.

public:
 System::IO::Stream ^ GetRequestStream([Runtime::InteropServices::Out] System::Net::TransportContext ^ % context);
public System.IO.Stream GetRequestStream (out System.Net.TransportContext? context);
public System.IO.Stream GetRequestStream (out System.Net.TransportContext context);
override this.GetRequestStream : TransportContext -> System.IO.Stream
Public Function GetRequestStream (ByRef context As TransportContext) As Stream

매개 변수

반환

요청 데이터를 작성하는 데 사용할 Stream.

예외

GetRequestStream() 메서드가 Stream가져올 수 없습니다.

GetRequestStream() 메서드를 두 번 이상 호출합니다.

-또는-

TransferEncoding 값으로 설정되고 SendChunkedfalse.

요청 캐시 유효성 검사기는 이 요청에 대한 응답을 캐시에서 처리할 수 있음을 나타냅니다. 그러나 데이터를 쓰는 요청은 캐시를 사용하지 않아야 합니다. 이 예외는 잘못 구현된 사용자 지정 캐시 유효성 검사기를 사용하는 경우에 발생할 수 있습니다.

Method 속성은 GET 또는 HEAD입니다.

-또는-

KeepAlive true, AllowWriteStreamBufferingfalse, ContentLength -1, SendChunkedfalse, Method POST 또는 PUT입니다.

Abort() 이전에 호출되었습니다.

-또는-

요청에 대한 제한 시간이 만료되었습니다.

-또는-

요청을 처리하는 동안 오류가 발생했습니다.

설명

주의

WebRequest, HttpWebRequest, ServicePointWebClient 사용되지 않으므로 새 개발에 사용하면 안 됩니다. 대신 HttpClient 사용합니다.

GetRequestStream 메서드는 HttpWebRequest 데이터를 보내는 데 사용할 스트림을 반환하고 스트림과 연결된 TransportContext 출력합니다. Stream 개체가 반환된 후 Stream.Write 메서드를 사용하여 HttpWebRequest 데이터를 보낼 수 있습니다.

확장된 보호를 사용하여 Windows 통합 인증을 사용하는 일부 애플리케이션은 기본 TLS 채널에서 CBT(채널 바인딩 토큰)를 검색하기 위해 HttpWebRequest 사용하는 전송 계층을 쿼리할 수 있어야 할 수 있습니다. GetRequestStream 메서드는 요청 본문(POSTPUT 요청)이 있는 HTTP 메서드에 대해 이 정보에 대한 액세스를 제공합니다. 애플리케이션이 자체 인증을 구현하고 CBT에 액세스해야 하는 경우에만 필요합니다.

애플리케이션이 ContentLength 속성의 값을 설정해야 하는 경우 스트림을 검색하기 전에 이 작업을 수행해야 합니다.

스트림을 닫고 다시 사용할 연결을 해제하려면 Stream.Close 메서드를 호출해야 합니다. 스트림을 닫지 않으면 애플리케이션에 연결이 부족합니다.

메모

애플리케이션은 특정 요청에 대해 동기 및 비동기 메서드를 혼합할 수 없습니다. GetRequestStream 메서드를 호출하는 경우 GetResponse 메서드를 사용하여 응답을 검색해야 합니다.

메모

이 멤버는 애플리케이션에서 네트워크 추적을 사용하도록 설정할 때 추적 정보를 출력합니다. 자세한 내용은 .NET Framework네트워크 추적을 참조하세요.

추가 정보

적용 대상