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á objekt, který Stream se má použít k zápisu dat požadavku.
Přetížení
GetRequestStream() |
Získá objekt, který Stream se má použít k zápisu dat požadavku. |
GetRequestStream(TransportContext) |
Získá objekt, který Stream se má použít k zápisu dat požadavku a výstupu TransportContext přidruženého k datovému proudu. |
GetRequestStream()
- Zdroj:
- HttpWebRequest.cs
- Zdroj:
- HttpWebRequest.cs
- Zdroj:
- HttpWebRequest.cs
Získá objekt, který Stream se má použít 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
A Stream , která se použije k zápisu dat požadavků.
Výjimky
Vlastnost Method je GET nebo HEAD.
-nebo-
KeepAlive is true
, AllowWriteStreamBuffering is false
, ContentLength is -1, SendChunked is false
, and Method is POST nebo PUT.
Metoda je GetRequestStream() volána více než jednou.
-nebo-
TransferEncoding je nastavená na hodnotu a SendChunked je false
.
Validátor mezipaměti požadavků uvedl, že odpověď na tento požadavek může být obsloužena 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() byla dříve volána.
-nebo-
Vypršel časový limit žádosti.
-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 stream požadavku s nulovou délkou obsahu. Další informace o zpracování požadavků s nulovou délkou obsahu najdete 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
Metoda GetRequestStream vrátí datový proud, který se použije k odeslání dat pro HttpWebRequest. Po vrácení objektu Stream můžete pomocí metody odeslat data s HttpWebRequest objektem Stream.Write .
Pokud aplikace potřebuje nastavit hodnotu ContentLength vlastnosti, musíte to provést před načtením datového proudu.
Pokud chcete datový proud zavřít a uvolnit připojení pro opakované použití, musíte volat Stream.Close metodu . Selhání zavření datového proudu způsobí, že vaší aplikaci dojde připojení.
Poznámka
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 GetResponse metodu .
Poznámka
Tento člen poskytuje trasovací informace, když je ve vaší aplikaci povoleno trasování sítě. Další informace najdete 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á objekt, který Stream se má použít k zápisu dat požadavku a výstupu TransportContext přidruženého k datovému proudu.
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
Hodnota TransportContext pro Stream.
Návraty
A Stream , která se použije k zápisu dat požadavků.
Výjimky
Metodě se GetRequestStream() nepodařilo získat .Stream
Metoda je GetRequestStream() volána více než jednou.
-nebo-
TransferEncoding je nastavená na hodnotu a SendChunked je false
.
Validátor mezipaměti požadavků uvedl, že odpověď na tento požadavek může být obsloužena 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 is true
, AllowWriteStreamBuffering is false
, ContentLength is -1, SendChunked is false
, and Method is POST nebo PUT.
Abort() byla dříve volána.
-nebo-
Vypršel časový limit žádosti.
-nebo-
Při zpracování požadavku došlo k chybě.
Poznámky
Metoda GetRequestStream vrátí datový proud, který se použije k odesílání dat pro HttpWebRequest a výstupy přidružené k TransportContext datovému proudu. Po vrácení objektu Stream můžete pomocí metody odeslat data s HttpWebRequest objektem Stream.Write .
Některé aplikace, které používají integrované ověřování systému Windows s rozšířenou ochranou, mohou být schopny dotazovat se na vrstvu přenosu používanou službou HttpWebRequest , aby bylo možné načíst token vazby kanálu (CBT) ze základního kanálu TLS. Metoda GetRequestStream poskytuje přístup k informacím pro metody HTTP, které mají text 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 ContentLength vlastnosti, musíte to provést před načtením datového proudu.
Pokud chcete datový proud zavřít a uvolnit připojení pro opakované použití, musíte volat Stream.Close metodu . Selhání zavření datového proudu způsobí, že vaší aplikaci dojde připojení.
Poznámka
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 GetResponse metodu .
Poznámka
Tento člen poskytuje trasovací informace, když je ve vaší aplikaci povoleno trasování sítě. Další informace najdete 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
Platí pro
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro