HttpWebRequest::GetRequestStream Method ()
Gets a Stream object to use to write request data.
Assembly: System (in System.dll)
| Exception | 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. |
| NotSupportedException | The request cache validator indicated that the response for this request can be served from the cache; however, requests that write data must not use the cache. This exception can occur if you are using a custom cache validator that is incorrectly implemented. |
| WebException | Abort was previously called. -or- The time-out period for the request expired. -or- An error occurred while processing the request. |
| ObjectDisposedException | In a .NET Compact Framework application, a request stream with zero content length was not obtained and closed correctly. For more information about handling zero content length requests, see Network Programming in the .NET Compact Framework. |
The GetRequestStream method returns a stream to use to send data for the HttpWebRequest. After the Stream object has been returned, you can send data with the HttpWebRequest by using the Stream::Write method.
If an application needs to set the value of the ContentLength property, then this must be done before retrieving the stream.
You must call the Stream::Close method to close the stream and release the connection for reuse. Failure to close the stream causes your application to run out of connections.
Note |
|---|
Your application cannot mix synchronous and asynchronous methods for a particular request. If you call the GetRequestStream method, you must use the GetResponse method to retrieve the response. |
Note |
|---|
This member outputs trace information when you enable network tracing in your application. For more information, see Network Tracing in the .NET Framework. |
The following code example uses the GetRequestStream method to return a stream instance.
// 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();
Available since 1.1
