HttpWebRequest.GetRequestStream Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Získá Stream objekt, který se použije k zápisu dat požadavku.
Přetížení
GetRequestStream() |
Získá Stream objekt, který se použije k zápisu dat požadavku. |
GetRequestStream(TransportContext) |
Získá Stream objekt, který se použije k zápisu dat požadavku a výstupy TransportContext přidružené ke streamu. |
GetRequestStream()
- Zdroj:
- HttpWebRequest.cs
- Zdroj:
- HttpWebRequest.cs
- Zdroj:
- HttpWebRequest.cs
Získá Stream objekt, který se použije k zápisu dat požadavku.
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
Návraty
Stream, která se má použít k zápisu dat požadavku.
Výjimky
Vlastnost Method je GET nebo HEAD.
-nebo-
KeepAlive je true
, AllowWriteStreamBuffering je false
, ContentLength je -1, SendChunked je false
a Method je POST nebo PUT.
Metoda GetRequestStream() se nazývá více než jednou.
-nebo-
TransferEncoding je nastavena na hodnotu a SendChunked je false
.
Validátor mezipaměti požadavku uvedl, že odpověď pro tento požadavek může být obsluhována z mezipaměti; požadavky, které zapisuje data, však nesmí používat mezipaměť. K této výjimce může dojít, pokud používáte vlastní validátor mezipaměti, který je nesprávně implementován.
Abort() byl dříve volána.
-nebo-
Vypršel časový limit požadavku.
-nebo-
Při zpracování požadavku došlo k chybě.
V aplikaci .NET Compact Framework nebyl získán a správně uzavřen datový proud požadavku s nulovou délkou obsahu. Další informace o zpracování požadavků nulové délky obsahu naleznete v tématu programování sítě v rozhraní .NET Compact Framework.
Příklady
Následující příklad kódu používá metodu GetRequestStream k vrácení instance streamu.
// 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()
Poznámky
Opatrnost
WebRequest
, HttpWebRequest
, ServicePoint
a WebClient
jsou zastaralé a neměli byste je používat pro nový vývoj. Místo toho použijte HttpClient.
Metoda GetRequestStream vrátí datový proud, který se použije k odesílání dat pro HttpWebRequest. Po vrácení objektu Stream můžete pomocí metody Stream.Write odeslat data pomocí HttpWebRequest.
Pokud aplikace potřebuje nastavit hodnotu vlastnosti ContentLength, musí to být provedeno před načtením datového proudu.
Chcete-li datový proud zavřít a uvolnit připojení pro opakované použití, musíte volat metodu Stream.Close. Při zavření datového proudu dojde k výpadku připojení vaší aplikace.
Poznámka
Vaše aplikace nemůže kombinovat synchronní a asynchronní metody pro konkrétní požadavek. Pokud voláte metodu GetRequestStream, musíte k načtení odpovědi použít metodu GetResponse.
Poznámka
Tento člen vypíše informace o trasování, když ve své aplikaci povolíte trasování sítě. Další informace naleznete v tématu Trasování sítě v rozhraní .NET Framework.
Viz také
Platí pro
GetRequestStream(TransportContext)
- Zdroj:
- HttpWebRequest.cs
- Zdroj:
- HttpWebRequest.cs
- Zdroj:
- HttpWebRequest.cs
Získá Stream objekt, který se použije k zápisu dat požadavku a výstupy TransportContext přidružené ke streamu.
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
Parametry
- context
- TransportContext
TransportContext pro Stream.
Návraty
Stream, která se má použít k zápisu dat požadavku.
Výjimky
Metoda GetRequestStream() nemohla získat Stream.
Metoda GetRequestStream() se nazývá více než jednou.
-nebo-
TransferEncoding je nastavena na hodnotu a SendChunked je false
.
Validátor mezipaměti požadavku uvedl, že odpověď pro tento požadavek může být obsluhována z mezipaměti; požadavky, které zapisuje data, však nesmí používat mezipaměť. K této výjimce může dojít, pokud používáte vlastní validátor mezipaměti, který je nesprávně implementován.
Vlastnost Method je GET nebo HEAD.
-nebo-
KeepAlive je true
, AllowWriteStreamBuffering je false
, ContentLength je -1, SendChunked je false
a Method je POST nebo PUT.
Abort() byl dříve volána.
-nebo-
Vypršel časový limit požadavku.
-nebo-
Při zpracování požadavku došlo k chybě.
Poznámky
Opatrnost
WebRequest
, HttpWebRequest
, ServicePoint
a WebClient
jsou zastaralé a neměli byste je používat pro nový vývoj. Místo toho použijte HttpClient.
Metoda GetRequestStream vrátí datový proud, který se použije k odesílání dat pro HttpWebRequest a výstupy TransportContext přidružené ke streamu. Po vrácení objektu Stream můžete pomocí metody Stream.Write odeslat data pomocí HttpWebRequest.
Některé aplikace, které používají integrované ověřování systému Windows s rozšířenou ochranou, mohou být schopné dotazovat vrstvu přenosu používanou HttpWebRequest k načtení tokenu vazby kanálu (CBT) ze základního kanálu TLS. Metoda GetRequestStream poskytuje přístup k tomuto informacím pro metody HTTP, které mají tělo požadavku (POST
a PUT
požadavky). To je potřeba jenom v případě, že aplikace implementuje vlastní ověřování a potřebuje přístup k CBT.
Pokud aplikace potřebuje nastavit hodnotu vlastnosti ContentLength, musí to být provedeno před načtením datového proudu.
Chcete-li datový proud zavřít a uvolnit připojení pro opakované použití, musíte volat metodu Stream.Close. Při zavření datového proudu dojde k výpadku připojení vaší aplikace.
Poznámka
Vaše aplikace nemůže kombinovat synchronní a asynchronní metody pro konkrétní požadavek. Pokud voláte metodu GetRequestStream, musíte k načtení odpovědi použít metodu GetResponse.
Poznámka
Tento člen vypíše informace o trasování, když ve své aplikaci povolíte trasování sítě. Další informace naleznete v tématu Trasování sítě v rozhraní .NET Framework.
Viz také
- TransportContext
- GetChannelBinding(ChannelBindingKind)
- System.Security.Authentication.ExtendedProtection
- ChannelBinding
- integrované ověřování systému Windows s rozšířenou ochranou