Compartir por


HttpWebRequest.GetRequestStream Método

Definición

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

Sobrecargas

Nombre Description
GetRequestStream()

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

GetRequestStream(TransportContext)

Obtiene un Stream objeto 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
Source:
HttpWebRequest.cs
Source:
HttpWebRequest.cs

Obtiene un Stream objeto 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

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

Excepciones

La Method propiedad es GET o HEAD.

-o-

KeepAlivees , es true, ContentLengthAllowWriteStreamBuffering es false-1, SendChunked es falsey Method es POST o PUT.

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

-o-

TransferEncoding se establece en un valor y SendChunked es 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 redes en .NET Compact Framework.

Ejemplos

En el ejemplo de código siguiente se usa el GetRequestStream método 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 = "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 GetRequestStream método devuelve una secuencia que se va a usar para enviar datos para .HttpWebRequest Una vez devuelto el Stream objeto, puede enviar datos con HttpWebRequest mediante el Stream.Write método .

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

Debe llamar al Stream.Close método 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 GetRequestStream método , debe usar el GetResponse método 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, vea Seguimiento de red en .NET Framework.

Consulte también

Se aplica a

GetRequestStream(TransportContext)

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

Obtiene un Stream objeto 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

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

Excepciones

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

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

-o-

TransferEncoding se establece en un valor y SendChunked es 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 Method propiedad es GET o HEAD.

-o-

KeepAlivees , es true, ContentLengthAllowWriteStreamBuffering es false-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 GetRequestStream método devuelve una secuencia que se va a usar para enviar datos de y HttpWebRequest genera el TransportContext asociado a la secuencia. Una vez devuelto el Stream objeto, puede enviar datos con HttpWebRequest mediante el Stream.Write método .

Es posible que algunas aplicaciones que usan la autenticación integrada de Windows con protección ampliada necesiten poder consultar la capa de transporte utilizada por HttpWebRequest para recuperar el token de enlace de canal (CBT) desde el canal TLS subyacente. El GetRequestStream método proporciona acceso a esta información para los métodos HTTP que tienen un cuerpo de solicitud (POST y PUT solicitudes). 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 ContentLength propiedad , debe hacerse antes de recuperar la secuencia.

Debe llamar al Stream.Close método 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 GetRequestStream método , debe usar el GetResponse método 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, vea Seguimiento de red en .NET Framework.

Consulte también

Se aplica a