HttpWebRequest.GetRequestStream Método
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
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
- context
- TransportContext
O TransportContext para o Stream.
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
- TransportContext
- GetChannelBinding(ChannelBindingKind)
- System.Security.Authentication.ExtendedProtection
- ChannelBinding
- Autenticação Integrada do Windows com Proteção Estendida