Compartir vía


HttpWebRequest.GetRequestStream Método

Definición

Obtiene un objeto Stream que se va a usar para escribir datos de solicitud.

Sobrecargas

GetRequestStream()

Obtiene un objeto Stream que se va a usar para escribir datos de solicitud.

GetRequestStream(TransportContext)

Obtiene un objeto Stream que se va a usar para escribir datos de solicitud y genera el TransportContext asociado a la secuencia.

GetRequestStream()

Source:
HttpWebRequest.cs
Source:
HttpWebRequest.cs
Source:
HttpWebRequest.cs

Obtiene un objeto Stream que se va a usar para escribir datos de solicitud.

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

Un Stream que se va a usar para escribir datos de solicitud.

Excepciones

La propiedad Method es GET o HEAD.

-o-

KeepAlive es true, AllowWriteStreamBuffering es false, ContentLength es -1, SendChunked es falsey Method es POST o PUT.

Se llama al método GetRequestStream() más de una vez.

-o-

TransferEncoding se establece en un valor y SendChunked se false.

El validador de caché de solicitudes indicó que la respuesta de esta solicitud se puede atender desde la memoria caché; sin embargo, las solicitudes que escriben datos no deben usar la memoria caché. Esta excepción puede producirse si usa un validador de caché personalizado que se implementa incorrectamente.

Abort() se llamó anteriormente.

-o-

El período de tiempo de espera de la solicitud expiró.

-o-

Error al procesar la solicitud.

En una aplicación de .NET Compact Framework, un flujo de solicitud con longitud de contenido cero no se obtuvo y cerró correctamente. Para obtener más información sobre el control de solicitudes de longitud de contenido cero, vea programación de red en .NET Compact Framework.

Ejemplos

En el ejemplo de código siguiente se usa el método GetRequestStream para devolver una instancia de flujo.

// 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

Cautela

WebRequest, HttpWebRequest, ServicePointy WebClient están obsoletos y no debe usarlos para el nuevo desarrollo. Use HttpClient en su lugar.

El método GetRequestStream devuelve una secuencia que se va a usar para enviar datos para el HttpWebRequest. Una vez devuelto el objeto Stream, puede enviar datos con el HttpWebRequest mediante el método Stream.Write.

Si una aplicación necesita establecer el valor de la propiedad ContentLength, debe hacerse antes de recuperar la secuencia.

Debe llamar al método Stream.Close para cerrar la secuencia y liberar la conexión para su reutilización. Si no se cierra la secuencia, la aplicación se agota las conexiones.

Nota

La aplicación no puede mezclar métodos sincrónicos y asincrónicos para una solicitud determinada. Si llama al método GetRequestStream, debe usar el método GetResponse para recuperar la respuesta.

Nota

Este miembro genera información de seguimiento al habilitar el seguimiento de red en la aplicación. Para obtener más información, consulte seguimiento de red de en .NET Framework.

Consulte también

Se aplica a

GetRequestStream(TransportContext)

Source:
HttpWebRequest.cs
Source:
HttpWebRequest.cs
Source:
HttpWebRequest.cs

Obtiene un objeto Stream que se va a usar para escribir datos de solicitud y genera el TransportContext asociado a la secuencia.

public:
 System::IO::Stream ^ GetRequestStream([Runtime::InteropServices::Out] System::Net::TransportContext ^ % context);
public System.IO.Stream GetRequestStream (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

Un Stream que se va a usar para escribir datos de solicitud.

Excepciones

El método GetRequestStream() no pudo obtener el Stream.

Se llama al método GetRequestStream() más de una vez.

-o-

TransferEncoding se establece en un valor y SendChunked se false.

El validador de caché de solicitudes indicó que la respuesta de esta solicitud se puede atender desde la memoria caché; sin embargo, las solicitudes que escriben datos no deben usar la memoria caché. Esta excepción puede producirse si usa un validador de caché personalizado que se implementa incorrectamente.

La propiedad Method es GET o HEAD.

-o-

KeepAlive es true, AllowWriteStreamBuffering es false, ContentLength es -1, SendChunked es falsey Method es POST o PUT.

Abort() se llamó anteriormente.

-o-

El período de tiempo de espera de la solicitud expiró.

-o-

Error al procesar la solicitud.

Comentarios

Cautela

WebRequest, HttpWebRequest, ServicePointy WebClient están obsoletos y no debe usarlos para el nuevo desarrollo. Use HttpClient en su lugar.

El método GetRequestStream devuelve una secuencia que se va a usar para enviar datos para el HttpWebRequest y genera el TransportContext asociado a la secuencia. Una vez devuelto el objeto Stream, puede enviar datos con el HttpWebRequest mediante el método Stream.Write.

Es posible que algunas aplicaciones que usan la autenticación integrada de Windows con protección ampliada necesiten poder consultar la capa de transporte usada por HttpWebRequest para recuperar el token de enlace de canal (CBT) desde el canal TLS subyacente. El método GetRequestStream proporciona acceso a esta información para los métodos HTTP que tienen un cuerpo de solicitud (POST y solicitudes de PUT). Esto solo es necesario si la aplicación implementa su propia autenticación y necesita acceso al CBT.

Si una aplicación necesita establecer el valor de la propiedad ContentLength, debe hacerse antes de recuperar la secuencia.

Debe llamar al método Stream.Close para cerrar la secuencia y liberar la conexión para su reutilización. Si no se cierra la secuencia, la aplicación se agota las conexiones.

Nota

La aplicación no puede mezclar métodos sincrónicos y asincrónicos para una solicitud determinada. Si llama al método GetRequestStream, debe usar el método GetResponse para recuperar la respuesta.

Nota

Este miembro genera información de seguimiento al habilitar el seguimiento de red en la aplicación. Para obtener más información, consulte seguimiento de red de en .NET Framework.

Consulte también

Se aplica a