Share via


HttpWebRequest.GetRequestStream Metoda

Definice

Stream Získá objekt k zápisu dat požadavku.

Přetížení

GetRequestStream()

Stream Získá objekt k zápisu dat požadavku.

GetRequestStream(TransportContext)

Získá objekt, který Stream se použije 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

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

Slouží Stream 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 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 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() byla dříve volána.

-nebo-

Časový limit žádosti vypršel.

-nebo-

Při zpracování požadavku došlo k chybě.

V aplikaci rozhraní .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ů s nulovou délkou obsahu najdete v tématu Síťové programování 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 , je nutné to provést před načtením datového proudu.

Je nutné zavolat metodu Stream.Close pro zavření datového proudu a uvolnění připojení pro opakované použití. Selhání zavření datového proudu způsobí, že aplikace dojdou 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 metodu GetResponse .

Poznámka

Tento člen poskytuje trasovací informace, když je ve vaší aplikaci povoleno 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á objekt, který Stream se použije 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

Návraty

Slouží Stream k zápisu dat požadavku.

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 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() byla dříve volána.

-nebo-

Časový limit žádosti vypršel.

-nebo-

Při zpracování požadavku došlo k chybě.

Poznámky

Metoda GetRequestStream vrátí datový proud, který se použije k odeslá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, možná budou muset mít možnost dotazovat se na vrstvu přenosu, kterou HttpWebRequest používá, aby bylo možné načíst token 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í 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 , je nutné to provést před načtením datového proudu.

Je nutné zavolat metodu Stream.Close pro zavření datového proudu a uvolnění připojení pro opakované použití. Selhání zavření datového proudu způsobí, že aplikace dojdou 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 metodu GetResponse .

Poznámka

Tento člen poskytuje trasovací informace, když je ve vaší aplikaci povoleno trasování sítě. Další informace naleznete v tématu Trasování sítě v rozhraní .NET Framework.

Viz také

Platí pro