HttpWebRequest.GetRequestStream HttpWebRequest.GetRequestStream HttpWebRequest.GetRequestStream HttpWebRequest.GetRequestStream Method

Definición

Obtiene un objeto Stream que se utilizará para escribir los datos de la solicitud.Gets a Stream object to use to write request data.

Sobrecargas

GetRequestStream() GetRequestStream() GetRequestStream() GetRequestStream()

Obtiene un objeto Stream que se utilizará para escribir los datos de la solicitud.Gets a Stream object to use to write request data.

GetRequestStream(TransportContext) GetRequestStream(TransportContext) GetRequestStream(TransportContext) GetRequestStream(TransportContext)

Obtiene un objeto Stream que se va a usar para escribir los datos de la solicitud y genera el objeto TransportContext asociado a la secuencia.Gets a Stream object to use to write request data and outputs the TransportContext associated with the stream.

GetRequestStream() GetRequestStream() GetRequestStream() GetRequestStream()

Obtiene un objeto Stream que se utilizará para escribir los datos de la solicitud.Gets a Stream object to use to write request data.

public:
 override System::IO::Stream ^ GetRequestStream();
public override System.IO.Stream GetRequestStream ();
override this.GetRequestStream : unit -> System.IO.Stream
Public Overrides Function GetRequestStream () As Stream

Devoluciones

Stream que se utiliza para escribir los datos de la solicitud.A Stream to use to write request data.

Excepciones

La propiedad Method es GET o HEAD.The Method property is GET or HEAD.

o bien-or- KeepAlive es true, AllowWriteStreamBuffering es false, ContentLength es -1, SendChunked es false y Method es POST o PUT.KeepAlive is true, AllowWriteStreamBuffering is false, ContentLength is -1, SendChunked is false, and Method is POST or PUT.

Se llama al método GetRequestStream() más de una vez.The GetRequestStream() method is called more than once.

o bien-or- TransferEncoding se establece en un valor y SendChunked es false.TransferEncoding is set to a value and SendChunked is false.

El validador de caché de solicitud indicó que la respuesta para esta solicitud se puede atender desde la memoria caché; sin embargo, las solicitudes que escriben datos no deben usar la caché.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. Esta excepción puede producirse si usa un validador de caché personalizado que se implementa incorrectamente.This exception can occur if you are using a custom cache validator that is incorrectly implemented.

Se llamó a Abort() anteriormente.Abort() was previously called.

o bien-or- El período de tiempo de espera para la solicitud expiró.The time-out period for the request expired.

O bien-or- Error al procesar la solicitud.An error occurred while processing the request.

En una aplicación de .NET Compact Framework, no se obtuvo una secuencia de solicitud con longitud de contenido cero y se cerró correctamente.In a .NET Compact Framework application, a request stream with zero content length was not obtained and closed correctly. Para más información sobre cómo controlar solicitudes de longitud de contenido cero, vea Programación para redes en .NET Compact Framework.For more information about handling zero content length requests, see Network Programming in the .NET Compact Framework.

Ejemplos

En el ejemplo de código siguiente GetRequestStream se usa el método para devolver una instancia de Stream.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();
// 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 = "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 = 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 ();

' Set the 'Method' property of the 'Webrequest' to 'POST'.
myHttpWebRequest.Method = "POST"

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 = byte1.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()

Comentarios

El GetRequestStream método devuelve una secuencia que se va a utilizar para enviar HttpWebRequestdatos para.The GetRequestStream method returns a stream to use to send data for the HttpWebRequest. Una vez Stream devuelto el objeto, puede enviar datos HttpWebRequest con mediante el Stream.Write método.After the Stream object has been returned, you can send data with the HttpWebRequest by using the Stream.Write method.

Si una aplicación necesita establecer el valor de la ContentLength propiedad, debe hacerlo antes de recuperar la secuencia.If an application needs to set the value of the ContentLength property, then this must be done before retrieving the stream.

Debe llamar Stream.Close al método para cerrar la secuencia y liberar la conexión para su reutilización.You must call the Stream.Close method to close the stream and release the connection for reuse. Si no se cierra el flujo, la aplicación se quedará sin conexión.Failure to close the stream causes your application to run out of connections.

Nota

La aplicación no puede mezclar métodos sincrónicos y asincrónicos para una solicitud determinada.Your application cannot mix synchronous and asynchronous methods for a particular request. Si llama al GetRequestStream método, debe utilizar el GetResponse método para recuperar la respuesta.If you call the GetRequestStream method, you must use the GetResponse method to retrieve the response.

Nota

Este miembro genera información de seguimiento cuando se habilita el seguimiento de red en la aplicación.This member outputs trace information when you enable network tracing in your application. Para obtener más información, consulte seguimiento de red en el .NET Framework.For more information, see Network Tracing in the .NET Framework.

Consulte también:

GetRequestStream(TransportContext) GetRequestStream(TransportContext) GetRequestStream(TransportContext) GetRequestStream(TransportContext)

Obtiene un objeto Stream que se va a usar para escribir los datos de la solicitud y genera el objeto TransportContext asociado a la secuencia.Gets a Stream object to use to write request data and outputs the TransportContext associated with the stream.

public:
 System::IO::Stream ^ GetRequestStream([Runtime::InteropServices::Out] System::Net::TransportContext ^ % context);
public System.IO.Stream GetRequestStream (out System.Net.TransportContext context);
override this.GetRequestStream : TransportContext -> System.IO.Stream
Public Function GetRequestStream (ByRef context As TransportContext) As Stream

Parámetros

Devoluciones

Stream que se utiliza para escribir los datos de la solicitud.A Stream to use to write request data.

Excepciones

El método GetRequestStream() no pudo obtener Stream.The GetRequestStream() method was unable to obtain the Stream.

Se llama al método GetRequestStream() más de una vez.The GetRequestStream() method is called more than once.

O bien-or- TransferEncoding se establece en un valor y SendChunked es false.TransferEncoding is set to a value and SendChunked is false.

El validador de caché de solicitud indicó que la respuesta para esta solicitud se puede atender desde la memoria caché; sin embargo, las solicitudes que escriben datos no deben usar la caché.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. Esta excepción puede producirse si usa un validador de caché personalizado que se implementa incorrectamente.This exception can occur if you are using a custom cache validator that is incorrectly implemented.

La propiedad Method es GET o HEAD.The Method property is GET or HEAD.

O bien-or- KeepAlive es true, AllowWriteStreamBuffering es false, ContentLength es -1, SendChunked es false y Method es POST o PUT.KeepAlive is true, AllowWriteStreamBuffering is false, ContentLength is -1, SendChunked is false, and Method is POST or PUT.

Se llamó a Abort() anteriormente.Abort() was previously called.

O bien-or- El período de tiempo de espera para la solicitud expiró.The time-out period for the request expired.

o bien-or- Error al procesar la solicitud.An error occurred while processing the request.

Comentarios

El GetRequestStream método devuelve una secuencia que se va a utilizar para enviar HttpWebRequest los datos de TransportContext y genera el objeto asociado a la secuencia.The GetRequestStream method returns a stream to use to send data for the HttpWebRequest and outputs the TransportContext associated with the stream. Una vez Stream devuelto el objeto, puede enviar datos HttpWebRequest con mediante el Stream.Write método.After the Stream object has been returned, you can send data with the HttpWebRequest by using the Stream.Write method.

Es posible que algunas aplicaciones que usan la autenticación integrada de Windows con protección ampliada necesiten consultar la capa de HttpWebRequest transporte usada por para recuperar el token de enlace de canal (CBT) del canal TLS subyacente.Some applications that use integrated Windows authentication with extended protection may need to be able to query the transport layer used by HttpWebRequest in order to retrieve the channel binding token (CBT) from the underlying TLS channel. El GetRequestStream método proporciona acceso a esta información para los métodos HTTP que tienen un cuerpo dePOST solicitud PUT (y solicitudes).The GetRequestStream method provides access to this information for HTTP methods which have a request body (POST and PUT requests). Esto solo es necesario si la aplicación está implementando su propia autenticación y necesita acceso a CBT.This is only needed if the application is implementing its own authentication and needs access to the CBT.

Si una aplicación necesita establecer el valor de la ContentLength propiedad, debe hacerlo antes de recuperar la secuencia.If an application needs to set the value of the ContentLength property, then this must be done before retrieving the stream.

Debe llamar Stream.Close al método para cerrar la secuencia y liberar la conexión para su reutilización.You must call the Stream.Close method to close the stream and release the connection for reuse. Si no se cierra el flujo, la aplicación se quedará sin conexión.Failure to close the stream causes your application to run out of connections.

Nota

La aplicación no puede mezclar métodos sincrónicos y asincrónicos para una solicitud determinada.Your application cannot mix synchronous and asynchronous methods for a particular request. Si llama al GetRequestStream método, debe utilizar el GetResponse método para recuperar la respuesta.If you call the GetRequestStream method, you must use the GetResponse method to retrieve the response.

Nota

Este miembro genera información de seguimiento cuando se habilita el seguimiento de red en la aplicación.This member outputs trace information when you enable network tracing in your application. Para obtener más información, consulte seguimiento de red en el .NET Framework.For more information, see Network Tracing in the .NET Framework.

Consulte también:

Se aplica a