Sdílet prostřednictvím


HttpWebRequest.GetRequestStream Metoda

Definice

Stream Získá objekt, který se má použít k zápisu dat požadavku.

Přetížení

Name Description
GetRequestStream()

Stream Získá objekt, který se má použít k zápisu dat požadavku.

GetRequestStream(TransportContext)

Stream Získá 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
Zdroj:
HttpWebRequest.cs
Zdroj:
HttpWebRequest.cs

Stream Získá objekt, který 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 má použít k zápisu dat požadavku.

Výjimky

Vlastnost Method je GET nebo HEAD.

-nebo-

KeepAliveis true, is , ContentLengthAllowWriteStreamBuffering is false- 1, SendChunked is false, and Method is 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ů na nulovou délku 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 = "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 odeslat data pomocí HttpWebRequestStream.Write metody.

Pokud aplikace potřebuje nastavit hodnotu ContentLength vlastnosti, musí to být provedeno před načtením datového proudu.

Voláním metody zavřete Stream.Close datový proud a uvolněte připojení pro opakované použití. 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 ji použít GetResponse k načtení odpovědi.

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
Zdroj:
HttpWebRequest.cs
Zdroj:
HttpWebRequest.cs

Stream Získá 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

A Stream , která se má použít k zápisu dat požadavku.

Výjimky

Metoda GetRequestStream() nebyla schopna 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-

KeepAliveis true, is , ContentLengthAllowWriteStreamBuffering is false- 1, SendChunked is false, and Method is 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 datové proudy a výstupy TransportContext přidružené k datovému proudu. Po vrácení objektu Stream můžete pomocí metody odeslat data pomocí HttpWebRequestStream.Write metody.

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) z podkladové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 ContentLength vlastnosti, musí to být provedeno před načtením datového proudu.

Voláním metody zavřete Stream.Close datový proud a uvolněte připojení pro opakované použití. 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 ji použít GetResponse k načtení odpovědi.

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