다음을 통해 공유


HttpWebRequest.AllowWriteStreamBuffering 속성

정의

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

public:
 virtual property bool AllowWriteStreamBuffering { bool get(); void set(bool value); };
public:
 property bool AllowWriteStreamBuffering { bool get(); void set(bool value); };
public virtual bool AllowWriteStreamBuffering { get; set; }
public bool AllowWriteStreamBuffering { get; set; }
member this.AllowWriteStreamBuffering : bool with get, set
Public Overridable Property AllowWriteStreamBuffering As Boolean
Public Property AllowWriteStreamBuffering As Boolean

속성 값

인터넷 리소스로 전송되는 데이터의 버퍼링을 사용하도록 설정하는 true. 버퍼링을 사용하지 않도록 설정하려면 false. 기본값은 true.

예제

다음 코드 예제에서는 AllowWriteStreamBuffering 속성을 사용하여 데이터 버퍼링을 사용하지 않도록 설정합니다.

// Create a new 'HttpWebRequest' object to the mentioned Uri.
HttpWebRequest^ myHttpWebRequest = (HttpWebRequest^)( WebRequest::Create( "http://www.contoso.com/codesnippets/next.asp" ) );
// Set AllowWriteStreamBuffering to 'false'.
myHttpWebRequest->AllowWriteStreamBuffering = false;
Console::WriteLine( "\nPlease Enter the data to be posted to the (http://www.contoso.com/codesnippets/next.asp) uri:" );
String^ inputData = Console::ReadLine();
String^ postData = String::Concat( "firstone= ", inputData );
// Set 'Method' property of 'HttpWebRequest' class to POST.
myHttpWebRequest->Method = "POST";
ASCIIEncoding^ encodedData = gcnew ASCIIEncoding;
array<Byte>^ byteArray = encodedData->GetBytes( postData );
// Set 'ContentType' property of the 'HttpWebRequest' class to S"application/x-www-form-urlencoded".
myHttpWebRequest->ContentType = "application/x-www-form-urlencoded";
// If the AllowWriteStreamBuffering property of HttpWebRequest is set to false, the contentlength has to be set to length of data to be posted else Exception(411) is raised.
myHttpWebRequest->ContentLength = byteArray->Length;
Stream^ newStream = myHttpWebRequest->GetRequestStream();
newStream->Write( byteArray, 0, byteArray->Length );
newStream->Close();
Console::WriteLine( "\nData has been posted to the Uri\n\nPlease wait for the response.........." );
// Assign the response object of 'HttpWebRequest' to a 'HttpWebResponse' variable.
HttpWebResponse^ myHttpWebResponse = (HttpWebResponse^)( myHttpWebRequest->GetResponse() );

// Create a new 'HttpWebRequest' object to the mentioned Uri.				
HttpWebRequest myHttpWebRequest=(HttpWebRequest)WebRequest.Create("http://www.contoso.com/codesnippets/next.asp");
// Set AllowWriteStreamBuffering to 'false'.
myHttpWebRequest.AllowWriteStreamBuffering=false;
Console.WriteLine("\nPlease Enter the data to be posted to the (http://www.contoso.com/codesnippets/next.asp) uri:");
string inputData =Console.ReadLine();
string postData="firstone="+inputData;
// Set 'Method' property of 'HttpWebRequest' class to POST.
myHttpWebRequest.Method="POST";
ASCIIEncoding encodedData=new ASCIIEncoding();
byte[]  byteArray=encodedData.GetBytes(postData);
// Set 'ContentType' property of the 'HttpWebRequest' class to "application/x-www-form-urlencoded".
myHttpWebRequest.ContentType="application/x-www-form-urlencoded";
// If the AllowWriteStreamBuffering property of HttpWebRequest is set to false,the contentlength has to be set to length of data to be posted else Exception(411) is raised.
myHttpWebRequest.ContentLength=byteArray.Length;
Stream newStream=myHttpWebRequest.GetRequestStream();
newStream.Write(byteArray,0,byteArray.Length);
newStream.Close();
Console.WriteLine("\nData has been posted to the Uri\n\nPlease wait for the response..........");
// Assign the response object of 'HttpWebRequest' to a 'HttpWebResponse' variable.
HttpWebResponse myHttpWebResponse=(HttpWebResponse)myHttpWebRequest.GetResponse();
 ' A new 'HttpWebRequest' object is created 				
 Dim myHttpWebRequest As HttpWebRequest = CType(WebRequest.Create("http://www.contoso.com/codesnippets/next.asp"), HttpWebRequest)
' AllowWriteStreamBuffering is set to 'false' 
 myHttpWebRequest.AllowWriteStreamBuffering = False
 Console.WriteLine(ControlChars.Cr + "Please Enter the data to be posted to the (http://www.contoso.com/codesnippets/next.asp) uri:")
 Dim inputData As String = Console.ReadLine()
 Dim postData As String = "firstone" + ChrW(61) + inputData
 ' 'Method' property of 'HttpWebRequest' class is set to POST.
 myHttpWebRequest.Method = "POST"
 Dim encodedData As New ASCIIEncoding()
 Dim byteArray As Byte() = encodedData.GetBytes(postData)
 ' 'ContentType' property of the 'HttpWebRequest' class is set to "application/x-www-form-urlencoded".
 myHttpWebRequest.ContentType = "application/x-www-form-urlencoded"
 ' If the AllowWriteStreamBuffering property of HttpWebRequest is set to false,then contentlength has to be set to length of data to be posted else Exception(411) Length required is raised.
  myHttpWebRequest.ContentLength=byteArray.Length
 Dim newStream As Stream = myHttpWebRequest.GetRequestStream()
 newStream.Write(byteArray, 0, byteArray.Length)
 newStream.Close()
 Console.WriteLine(ControlChars.Cr + "Data has been posted to the Uri" + ControlChars.Cr + ControlChars.Cr + "Please wait for the response..........")
 ' The response object of 'HttpWebRequest' is assigned to a 'HttpWebResponse' variable.
 Dim myHttpWebResponse As HttpWebResponse = CType(myHttpWebRequest.GetResponse(), HttpWebResponse)

설명

주의

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

AllowWriteStreamBuffering true경우 데이터는 메모리에 버퍼링되므로 리디렉션 또는 인증 요청 시 다시 전송할 준비가 됩니다.

상속자 참고

AllowWriteStreamBuffering true 설정하면 데이터 버퍼가 사용 가능한 모든 메모리를 사용할 수 있으므로 큰 데이터 세트를 업로드할 때 성능 문제가 발생할 수 있습니다.

적용 대상