Поделиться через


HttpWebRequest.BeginGetRequestStream Method

Microsoft Silverlight will reach end of support after October 2021. Learn more.

Begins an asynchronous request for a Stream object to use to write data.

Namespace:  System.Net
Assembly:  System.Net (in System.Net.dll)

Syntax

'Declaration
Public Overrides Function BeginGetRequestStream ( _
    callback As AsyncCallback, _
    state As Object _
) As IAsyncResult
public override IAsyncResult BeginGetRequestStream(
    AsyncCallback callback,
    Object state
)

Parameters

Return Value

Type: System.IAsyncResult
An IAsyncResult that references the asynchronous request.

Exceptions

Exception Condition
ProtocolViolationException

The Method property is GET

-or-

The ContentLength property was set to a value that does not match the size of the provided request body.

InvalidOperationException

The stream is being used by a previous call to BeginGetRequestStream

-or-

The thread pool is running out of threads.

NotImplementedException

This method is not implemented.

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.

ObjectDisposedException

In a .NET Framework application, a request stream with zero content length was not obtained and closed correctly.

Remarks

The BeginGetRequestStream method starts an asynchronous request for a stream used to send data for the HttpWebRequest. The asynchronous callback method uses the EndGetRequestStream method to return the actual stream.

You must use the BeginGetResponse method to retrieve the response. The IAsyncResult returned by the BeginGetResponse method does not support the AsyncWaitHandle property. If an application tries to access the AsyncWaitHandle property, a NotSupportedException is thrown.

On the client HTTP stack if AllowWriteStreamBuffering is false, the ContentLength property must be used to set the correct value of the Content-Length header before calling the BeginGetRequestStream method.

The AllowWriteStreamBuffering property affects when the callback from BeginGetRequestStream method is called. When the AllowWriteStreamBuffering property is true, the callback is raised immediately before any data is sent. When the AllowWriteStreamBuffering property is false, the callback is raised only after the headers are sent and then all writes to the stream are immediately sent to the server.

Version Information

Silverlight

Supported in: 5, 4, 3

Silverlight for Windows Phone

Supported in: Windows Phone OS 7.1, Windows Phone OS 7.0

XNA Framework

Supported in: Windows Phone OS 7.0

Platforms

For a list of the operating systems and browsers that are supported by Silverlight, see Supported Operating Systems and Browsers.