HttpWebRequest.GetRequestStream Método

Definição

Obtém um Stream objeto para usar para escrever dados de pedidos.

Sobrecargas

Name Description
GetRequestStream()

Obtém um Stream objeto para usar para escrever dados de pedidos.

GetRequestStream(TransportContext)

Obtém um Stream objeto para escrever dados de pedido e gera o que TransportContext está associado ao fluxo.

GetRequestStream()

Obtém um Stream objeto para usar para escrever dados de pedidos.

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

Devoluções

A Stream para usar para escrever dados de pedidos.

Exceções

A Method propriedade é GET ou HEAD.

-ou-

KeepAlive é true, AllowWriteStreamBuffering é false, ContentLength é -1, SendChunked é false, e Method é POST ou PUT.

O GetRequestStream() método é chamado mais do que uma vez.

-ou-

TransferEncoding é atribuído a um valor e SendChunked é false.

O validador de cache de pedidos indicou que a resposta a este pedido pode ser servida a partir da cache; no entanto, os pedidos que escrevem dados não devem usar a cache. Esta exceção pode ocorrer se estiver a usar um validador de cache personalizado que está incorretamente implementado.

Abort() foi anteriormente chamado.

-ou-

O período de tempo para o pedido expirou.

-ou-

Ocorreu um erro durante o processamento do pedido.

Numa aplicação .NET Compact Framework, um fluxo de pedidos com comprimento de conteúdo zero não era obtido e fechado corretamente. Para mais informações sobre o tratamento de pedidos com comprimento de conteúdo zero, consulte Programação em Rede no .NET Compact Framework.

Exemplos

O exemplo de código seguinte utiliza o GetRequestStream método para devolver uma instância de fluxo.

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

Observações

Atenção

WebRequest, HttpWebRequest, ServicePoint, e WebClient são obsoletos, e não deves usá-los para novos desenvolvimentos. Utilize HttpClient em substituição.

O GetRequestStream método devolve um fluxo para enviar dados para o HttpWebRequest. Depois de o Stream objeto ter sido devolvido, pode enviar dados com o HttpWebRequest usando o Stream.Write método.

Se uma aplicação precisar de definir o valor da ContentLength propriedade, isso deve ser feito antes de recuperar o fluxo.

Deve chamar o Stream.Close método para fechar o fluxo e libertar a ligação para reutilização. Não fechar o stream faz com que a sua aplicação fique sem ligações.

Note

A sua aplicação não pode misturar métodos síncronos e assíncronos para um pedido específico. Se chamar o GetRequestStream método, deve usá-lo GetResponse para recuperar a resposta.

Note

Esse membro gera informações de rastreamento quando você habilita o rastreamento de rede em seu aplicativo. Para mais informações, consulte Rastreamento de Rede no .NET Framework.

Ver também

Aplica-se a

GetRequestStream(TransportContext)

Obtém um Stream objeto para escrever dados de pedido e gera o que TransportContext está associado ao fluxo.

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

Devoluções

A Stream para usar para escrever dados de pedidos.

Exceções

O GetRequestStream() método não conseguiu obter o Stream.

O GetRequestStream() método é chamado mais do que uma vez.

-ou-

TransferEncoding é atribuído a um valor e SendChunked é false.

O validador de cache de pedidos indicou que a resposta a este pedido pode ser servida a partir da cache; no entanto, os pedidos que escrevem dados não devem usar a cache. Esta exceção pode ocorrer se estiver a usar um validador de cache personalizado que está incorretamente implementado.

A Method propriedade é GET ou HEAD.

-ou-

KeepAlive é true, AllowWriteStreamBuffering é false, ContentLength é -1, SendChunked é false, e Method é POST ou PUT.

Abort() foi anteriormente chamado.

-ou-

O período de tempo para o pedido expirou.

-ou-

Ocorreu um erro durante o processamento do pedido.

Observações

Atenção

WebRequest, HttpWebRequest, ServicePoint, e WebClient são obsoletos, e não deves usá-los para novos desenvolvimentos. Utilize HttpClient em substituição.

O GetRequestStream método devolve um fluxo para enviar dados para o HttpWebRequest e gera o associado TransportContext ao fluxo. Depois de o Stream objeto ter sido devolvido, pode enviar dados com o HttpWebRequest usando o Stream.Write método.

Algumas aplicações que utilizam Windows authentication integradas com proteção alargada podem precisar de consultar a camada de transporte usada por HttpWebRequest para recuperar o token de ligação de canal (CBT) do canal TLS subjacente. O GetRequestStream método fornece acesso a esta informação para métodos HTTP que têm um corpo de pedido (POST e PUT pedidos). Isto só é necessário se a aplicação estiver a implementar a sua própria autenticação e precisar de acesso à CBT.

Se uma aplicação precisar de definir o valor da ContentLength propriedade, isso deve ser feito antes de recuperar o fluxo.

Deve chamar o Stream.Close método para fechar o fluxo e libertar a ligação para reutilização. Não fechar o stream faz com que a sua aplicação fique sem ligações.

Note

A sua aplicação não pode misturar métodos síncronos e assíncronos para um pedido específico. Se chamar o GetRequestStream método, deve usá-lo GetResponse para recuperar a resposta.

Note

Esse membro gera informações de rastreamento quando você habilita o rastreamento de rede em seu aplicativo. Para mais informações, consulte Rastreamento de Rede no .NET Framework.

Ver também

Aplica-se a