HttpWebRequest.GetRequestStream Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Obtém um objeto Stream a ser usado para gravar dados de solicitação.
Sobrecargas
GetRequestStream() |
Obtém um objeto Stream a ser usado para gravar dados de solicitação. |
GetRequestStream(TransportContext) |
Obtém um objeto Stream a ser usado para gravar dados de solicitação e gera o TransportContext associado ao fluxo. |
GetRequestStream()
- Origem:
- HttpWebRequest.cs
- Origem:
- HttpWebRequest.cs
- Origem:
- HttpWebRequest.cs
Obtém um objeto Stream a ser usado para gravar dados de solicitação.
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
Retornos
Um Stream a ser usado para gravar dados de solicitação.
Exceções
A propriedade Method é GET ou HEAD.
-ou-
KeepAlive é true
, AllowWriteStreamBuffering é false
, ContentLength é -1, SendChunked é false
e Method é POST ou PUT.
O método GetRequestStream() é chamado mais de uma vez.
-ou-
TransferEncoding é definido como um valor e SendChunked é false
.
O validador de cache de solicitação indicou que a resposta para essa solicitação pode ser atendida do cache; no entanto, as solicitações que gravam dados não devem usar o cache. Essa exceção poderá ocorrer se você estiver usando um validador de cache personalizado implementado incorretamente.
Abort() foi chamado anteriormente.
-ou-
O período de tempo limite para a solicitação expirou.
-ou-
Erro ao processar a solicitação.
Em um aplicativo .NET Compact Framework, um fluxo de solicitação sem tamanho de conteúdo não foi obtido e fechado corretamente. Para obter mais informações sobre como lidar com solicitações de comprimento de conteúdo zero, consulte Programação de Rede no .NET Compact Framework.
Exemplos
O exemplo de código a seguir usa o método GetRequestStream para retornar 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 = 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()
Comentários
Cuidado
WebRequest
, HttpWebRequest
, ServicePoint
e WebClient
estão obsoletos e você não deve usá-los para um novo desenvolvimento. Em vez disso, use HttpClient.
O método GetRequestStream retorna um fluxo a ser usado para enviar dados para o HttpWebRequest. Depois que o objeto Stream tiver sido retornado, você poderá enviar dados com o HttpWebRequest usando o método Stream.Write.
Se um aplicativo precisar definir o valor da propriedade ContentLength, isso deverá ser feito antes de recuperar o fluxo.
Você deve chamar o método Stream.Close para fechar o fluxo e liberar a conexão para reutilização. A falha ao fechar o fluxo faz com que o aplicativo fique sem conexões.
Nota
Seu aplicativo não pode misturar métodos síncronos e assíncronos para uma solicitação específica. Se você chamar o método GetRequestStream, deverá usar o método GetResponse para recuperar a resposta.
Nota
Esse membro gera informações de rastreamento quando você habilita o rastreamento de rede em seu aplicativo. Para obter mais informações, consulte Rastreamento de Rede no .NET Framework.
Confira também
Aplica-se a
GetRequestStream(TransportContext)
- Origem:
- HttpWebRequest.cs
- Origem:
- HttpWebRequest.cs
- Origem:
- HttpWebRequest.cs
Obtém um objeto Stream a ser usado para gravar dados de solicitação e gera o TransportContext 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);
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 do Stream.
Retornos
Um Stream a ser usado para gravar dados de solicitação.
Exceções
O método GetRequestStream() não pôde obter o Stream.
O método GetRequestStream() é chamado mais de uma vez.
-ou-
TransferEncoding é definido como um valor e SendChunked é false
.
O validador de cache de solicitação indicou que a resposta para essa solicitação pode ser atendida do cache; no entanto, as solicitações que gravam dados não devem usar o cache. Essa exceção poderá ocorrer se você estiver usando um validador de cache personalizado implementado incorretamente.
A propriedade Method é GET ou HEAD.
-ou-
KeepAlive é true
, AllowWriteStreamBuffering é false
, ContentLength é -1, SendChunked é false
e Method é POST ou PUT.
Abort() foi chamado anteriormente.
-ou-
O período de tempo limite para a solicitação expirou.
-ou-
Erro ao processar a solicitação.
Comentários
Cuidado
WebRequest
, HttpWebRequest
, ServicePoint
e WebClient
estão obsoletos e você não deve usá-los para um novo desenvolvimento. Em vez disso, use HttpClient.
O método GetRequestStream retorna um fluxo a ser usado para enviar dados para o HttpWebRequest e gera o TransportContext associado ao fluxo. Depois que o objeto Stream tiver sido retornado, você poderá enviar dados com o HttpWebRequest usando o método Stream.Write.
Alguns aplicativos que usam a autenticação integrada do Windows com proteção estendida podem precisar ser capazes de consultar a camada de transporte usada por HttpWebRequest para recuperar o CBT (token de associação de canal) do canal TLS subjacente. O método GetRequestStream fornece acesso a essas informações para métodos HTTP que têm um corpo da solicitação (POST
e solicitações PUT
). Isso só será necessário se o aplicativo estiver implementando sua própria autenticação e precisar de acesso ao CBT.
Se um aplicativo precisar definir o valor da propriedade ContentLength, isso deverá ser feito antes de recuperar o fluxo.
Você deve chamar o método Stream.Close para fechar o fluxo e liberar a conexão para reutilização. A falha ao fechar o fluxo faz com que o aplicativo fique sem conexões.
Nota
Seu aplicativo não pode misturar métodos síncronos e assíncronos para uma solicitação específica. Se você chamar o método GetRequestStream, deverá usar o método GetResponse para recuperar a resposta.
Nota
Esse membro gera informações de rastreamento quando você habilita o rastreamento de rede em seu aplicativo. Para obter mais informações, consulte Rastreamento de Rede no .NET Framework.
Confira também
- TransportContext
- GetChannelBinding(ChannelBindingKind)
- System.Security.Authentication.ExtendedProtection
- ChannelBinding
- Autenticação Integrada do Windows com Proteção Estendida