Sdílet prostřednictvím


HttpWebRequest.GetRequestStream Metoda

Definice

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 falsea 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, ServicePointa 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

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 falsea 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, ServicePointa 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é

Platí pro