HttpWebRequest.GetRequestStream Method
Gets a Stream instance to use to write request data.
[Visual Basic] Overrides Public Function GetRequestStream() As Stream [C#] public override Stream GetRequestStream(); [C++] public: Stream* GetRequestStream(); [JScript] public override function GetRequestStream() : Stream;
Return Value
A Stream to use to write request data.
Exceptions
| Exception Type | Condition |
|---|---|
| ProtocolViolationException | The Method property is GET or HEAD.
-or- KeepAlive is true, AllowWriteStreamBuffering is false, ContentLength is -1, SendChunked is false, and Method is POST or PUT. |
| InvalidOperationException | The GetRequestStream method is called more than once.
-or- TransferEncoding is set to a value and SendChunked is false. |
| WebException | Abort was previously called.
-or- The time-out period for the request expired. -or- An error occurred while processing the request. |
Remarks
The GetRequestStream method returns a stream to use to send data for the HttpWebRequest. Once the Stream instance has been returned, you can send data with the HttpWebRequest by using the Stream.Write method.
Note You must set the value of the ContentLength property before retrieving the stream.
CAUTION You must call the Stream.Close method to close the stream and release the connection for reuse. Failure to close the stream will cause your application to run out of connections.
Example
[Visual Basic, C#, C++] The following example uses the GetRequestStream method to return a stream instance.
[Visual Basic] 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 = postData.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() [C#] 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=postData.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(); [C++] String* postData = String::Concat(S"firstone= ", inputData); ASCIIEncoding* encoding = new ASCIIEncoding(); Byte byte1[] = encoding->GetBytes(postData); // Set the content type of the data being posted. myHttpWebRequest->ContentType = S"application/x-www-form-urlencoded"; // Set the content length of the String* being posted. myHttpWebRequest->ContentLength=postData->Length; Stream* newStream = myHttpWebRequest->GetRequestStream(); newStream->Write(byte1, 0, byte1->Length); Console::WriteLine(S"The value of 'ContentLength' property after sending the data is {0}", __box(myHttpWebRequest->ContentLength)); // Close the Stream Object*. newStream->Close();
[JScript] No example is available for JScript. To view a Visual Basic, C#, or C++ example, click the Language Filter button
in the upper-left corner of the page.
Requirements
Platforms: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 family, .NET Compact Framework, Common Language Infrastructure (CLI) Standard
See Also
HttpWebRequest Class | HttpWebRequest Members | System.Net Namespace