Sdílet prostřednictvím


HttpWebRequest.GetRequestStream Metoda

Definice

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

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é

Platí pro