HttpWebRequest.EndGetRequestStream Method (IAsyncResult)
Ends an asynchronous request for a Stream object to use to write data.
Assembly: System (in System.dll)
Parameters
- asyncResult
-
Type:
System.IAsyncResult
The pending request for a stream.
| Exception | Condition |
|---|---|
| ArgumentNullException | asyncResult is null. |
| IOException | The request did not complete, and no stream is available. |
| ArgumentException | asyncResult was not returned by the current instance from a call to BeginGetRequestStream. |
| InvalidOperationException | This method was called previously using asyncResult. |
| WebException |
The EndGetRequestStream method completes an asynchronous request for a stream that was started by the BeginGetRequestStream method. After the Stream object 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 writing data to 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 causes your application to run out of connections. |
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 EndGetRequestStream method to end an asynchronous request for a stream instance.
using System; using System.Net; using System.IO; using System.Text; using System.Threading; class HttpWebRequestBeginGetRequest { private static ManualResetEvent allDone = new ManualResetEvent(false); public static void Main(string[] args) { // Create a new HttpWebRequest object. HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://www.contoso.com/example.aspx"); request.ContentType = "application/x-www-form-urlencoded"; // Set the Method property to 'POST' to post data to the URI. request.Method = "POST"; // start the asynchronous operation request.BeginGetRequestStream(new AsyncCallback(GetRequestStreamCallback), request); // Keep the main thread from continuing while the asynchronous // operation completes. A real world application // could do something useful such as updating its user interface. allDone.WaitOne(); } private static void GetRequestStreamCallback(IAsyncResult asynchronousResult) { HttpWebRequest request = (HttpWebRequest)asynchronousResult.AsyncState; // End the operation Stream postStream = request.EndGetRequestStream(asynchronousResult); Console.WriteLine("Please enter the input data to be posted:"); string postData = Console.ReadLine(); // Convert the string into a byte array. byte[] byteArray = Encoding.UTF8.GetBytes(postData); // Write to the request stream. postStream.Write(byteArray, 0, postData.Length); postStream.Close(); // Start the asynchronous operation to get the response request.BeginGetResponse(new AsyncCallback(GetResponseCallback), request); } private static void GetResponseCallback(IAsyncResult asynchronousResult) { HttpWebRequest request = (HttpWebRequest)asynchronousResult.AsyncState; // End the operation HttpWebResponse response = (HttpWebResponse)request.EndGetResponse(asynchronousResult); Stream streamResponse = response.GetResponseStream(); StreamReader streamRead = new StreamReader(streamResponse); string responseString = streamRead.ReadToEnd(); Console.WriteLine(responseString); // Close the stream object streamResponse.Close(); streamRead.Close(); // Release the HttpWebResponse response.Close(); allDone.Set(); } }
Available since 8
.NET Framework
Available since 1.1
Portable Class Library
Supported in: portable .NET platforms
Silverlight
Available since 2.0
Windows Phone Silverlight
Available since 7.0
Windows Phone
Available since 8.1

