Freigeben über


HttpWebRequest.GetRequestStream Methode

Definition

Ruft ein Stream Objekt zum Schreiben von Anforderungsdaten ab.

Überlädt

GetRequestStream()

Ruft ein Stream Objekt zum Schreiben von Anforderungsdaten ab.

GetRequestStream(TransportContext)

Ruft ein Stream -Objekt zum Schreiben von Anforderungsdaten und gibt die dem Datenstrom zugeordnete TransportContext aus.

GetRequestStream()

Quelle:
HttpWebRequest.cs
Quelle:
HttpWebRequest.cs
Quelle:
HttpWebRequest.cs

Ruft ein Stream Objekt zum Schreiben von Anforderungsdaten ab.

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

Gibt zurück

Eine Stream, die zum Schreiben von Anforderungsdaten verwendet werden soll.

Ausnahmen

Die Method-Eigenschaft ist GET oder HEAD.

-oder-

KeepAlive ist true, AllowWriteStreamBuffering ist false, ContentLength -1, SendChunked ist falseund Method POST oder PUT.

Die GetRequestStream()-Methode wird mehrmals aufgerufen.

-oder-

TransferEncoding wird auf einen Wert festgelegt, und SendChunked ist false.

Der Anforderungscache-Validator hat angegeben, dass die Antwort für diese Anforderung aus dem Cache bereitgestellt werden kann; Anforderungen, die Daten schreiben, dürfen den Cache jedoch nicht verwenden. Diese Ausnahme kann auftreten, wenn Sie einen benutzerdefinierten Cache validator verwenden, der falsch implementiert ist.

Abort() wurde zuvor aufgerufen.

-oder-

Der Timeoutzeitraum für die Anforderung ist abgelaufen.

-oder-

Fehler beim Verarbeiten der Anforderung.

In einer .NET Compact Framework-Anwendung wurde kein Anforderungsstream mit null Inhaltslänge abgerufen und ordnungsgemäß geschlossen. Weitere Informationen zum Behandeln von Anforderungen mit der Länge null von Inhalten finden Sie unter Netzwerkprogrammierung in .NET Compact Framework.

Beispiele

Im folgenden Codebeispiel wird die GetRequestStream-Methode verwendet, um eine Streaminstanz zurückzugeben.

// 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()

Hinweise

Vorsicht

WebRequest, HttpWebRequest, ServicePointund WebClient sind veraltet, und Sie sollten sie nicht für die neue Entwicklung verwenden. Verwenden Sie stattdessen HttpClient.

Die GetRequestStream-Methode gibt einen Datenstrom zurück, der zum Senden von Daten für die HttpWebRequestverwendet werden soll. Nachdem das Stream-Objekt zurückgegeben wurde, können Sie Daten mit dem HttpWebRequest mithilfe der Stream.Write-Methode senden.

Wenn eine Anwendung den Wert der ContentLength-Eigenschaft festlegen muss, muss dies erfolgen, bevor der Datenstrom abgerufen wird.

Sie müssen die Stream.Close-Methode aufrufen, um den Datenstrom zu schließen und die Verbindung zur Wiederverwendung freizugeben. Wenn der Datenstrom nicht geschlossen wird, wird die Anwendung nicht mehr mit Verbindungen verbunden.

Anmerkung

Ihre Anwendung kann keine synchronen und asynchronen Methoden für eine bestimmte Anforderung kombinieren. Wenn Sie die GetRequestStream-Methode aufrufen, müssen Sie die GetResponse-Methode verwenden, um die Antwort abzurufen.

Anmerkung

Dieses Mitglied gibt Ablaufverfolgungsinformationen aus, wenn Sie die Netzwerkablaufverfolgung in Ihrer Anwendung aktivieren. Weitere Informationen finden Sie unter Netzwerkablaufverfolgung in .NET Framework.

Weitere Informationen

Gilt für:

GetRequestStream(TransportContext)

Quelle:
HttpWebRequest.cs
Quelle:
HttpWebRequest.cs
Quelle:
HttpWebRequest.cs

Ruft ein Stream -Objekt zum Schreiben von Anforderungsdaten und gibt die dem Datenstrom zugeordnete TransportContext aus.

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

Parameter

context
TransportContext

Die TransportContext für die Stream.

Gibt zurück

Eine Stream, die zum Schreiben von Anforderungsdaten verwendet werden soll.

Ausnahmen

Die GetRequestStream() Methode konnte die Streamnicht abrufen.

Die GetRequestStream()-Methode wird mehrmals aufgerufen.

-oder-

TransferEncoding wird auf einen Wert festgelegt, und SendChunked ist false.

Der Anforderungscache-Validator hat angegeben, dass die Antwort für diese Anforderung aus dem Cache bereitgestellt werden kann; Anforderungen, die Daten schreiben, dürfen den Cache jedoch nicht verwenden. Diese Ausnahme kann auftreten, wenn Sie einen benutzerdefinierten Cache validator verwenden, der falsch implementiert ist.

Die Method-Eigenschaft ist GET oder HEAD.

-oder-

KeepAlive ist true, AllowWriteStreamBuffering ist false, ContentLength -1, SendChunked ist falseund Method POST oder PUT.

Abort() wurde zuvor aufgerufen.

-oder-

Der Timeoutzeitraum für die Anforderung ist abgelaufen.

-oder-

Fehler beim Verarbeiten der Anforderung.

Hinweise

Vorsicht

WebRequest, HttpWebRequest, ServicePointund WebClient sind veraltet, und Sie sollten sie nicht für die neue Entwicklung verwenden. Verwenden Sie stattdessen HttpClient.

Die GetRequestStream-Methode gibt einen Datenstrom zurück, der zum Senden von Daten für die HttpWebRequest verwendet werden soll, und gibt die dem Datenstrom zugeordneten TransportContext aus. Nachdem das Stream-Objekt zurückgegeben wurde, können Sie Daten mit dem HttpWebRequest mithilfe der Stream.Write-Methode senden.

Einige Anwendungen, die integrierte Windows-Authentifizierung mit erweitertem Schutz verwenden, müssen möglicherweise die von HttpWebRequest verwendete Transportschicht abfragen, um das Kanalbindungstoken (CBT) aus dem zugrunde liegenden TLS-Kanal abzurufen. Die GetRequestStream-Methode bietet Zugriff auf diese Informationen für HTTP-Methoden, die über einen Anforderungstext (POST und PUT Anforderungen) verfügen. Dies ist nur erforderlich, wenn die Anwendung eine eigene Authentifizierung implementiert und Zugriff auf das CBT benötigt.

Wenn eine Anwendung den Wert der ContentLength-Eigenschaft festlegen muss, muss dies erfolgen, bevor der Datenstrom abgerufen wird.

Sie müssen die Stream.Close-Methode aufrufen, um den Datenstrom zu schließen und die Verbindung zur Wiederverwendung freizugeben. Wenn der Datenstrom nicht geschlossen wird, wird die Anwendung nicht mehr mit Verbindungen verbunden.

Anmerkung

Ihre Anwendung kann keine synchronen und asynchronen Methoden für eine bestimmte Anforderung kombinieren. Wenn Sie die GetRequestStream-Methode aufrufen, müssen Sie die GetResponse-Methode verwenden, um die Antwort abzurufen.

Anmerkung

Dieses Mitglied gibt Ablaufverfolgungsinformationen aus, wenn Sie die Netzwerkablaufverfolgung in Ihrer Anwendung aktivieren. Weitere Informationen finden Sie unter Netzwerkablaufverfolgung in .NET Framework.

Weitere Informationen

Gilt für: