HttpWebRequest.GetRequestStream Methode

Definition

Ruft ein Stream-Objekt ab, das zum Schreiben von Anforderungsdaten verwendet werden soll.

Überlädt

GetRequestStream()

Ruft ein Stream-Objekt ab, das zum Schreiben von Anforderungsdaten verwendet werden soll.

GetRequestStream(TransportContext)

Ruft ein Stream-Objekt ab, das zum Schreiben von Anforderungsdaten verwendet wird und das dem Datenstrom zugeordnete TransportContext ausgibt.

GetRequestStream()

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

Ruft ein Stream-Objekt ab, das zum Schreiben von Anforderungsdaten verwendet werden soll.

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

Ein Stream, der zum Schreiben von Anforderungsdaten verwendet werden soll.

Ausnahmen

Die Method-Eigenschaft ist GET oder HEAD.

- oder -

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

Die GetRequestStream()-Methode wurde mehrmals aufgerufen.

- oder -

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

Die Anforderungcacheprüfung hat angezeigt, dass die Antwort auf diese Anforderung aus dem Cache erfolgen werden kann. Allerdings dürfen Anforderungen, die Daten schreiben, nicht den Cache verwenden. Diese Ausnahme kann auftreten, wenn Sie eine benutzerdefinierte Cacheprüfung verwenden, die nicht ordnungsgemäß implementiert ist.

Abort() wurde bereits aufgerufen.

- oder -

Das Zeitlimit für die Anforderung ist abgelaufen.

- oder -

Bei der Verarbeitung der Anforderung ist ein Fehler aufgetreten.

In einer .NET Compact Framework-Anwendung wurde ein Anforderungsstream mit leerem Inhalt nicht ordnungsgemäß abgerufen und geschlossen. Weitere Informationen über das Verarbeiten von Anforderungen mit einem Inhalt der Länge 0 (null) finden Sie unter Network Programming in the .NET Compact Framework (Netzwerkprogrammierung in .NET Compact Framework.).

Beispiele

Im folgenden Codebeispiel wird die GetRequestStream -Methode verwendet, um einen Stream instance 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

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

Wenn eine Anwendung den Wert der ContentLength -Eigenschaft festlegen muss, muss dies vor dem Abrufen des Datenstroms erfolgen.

Sie müssen die Stream.Close -Methode aufrufen, um den Stream zu schließen und die Verbindung zur Wiederverwendung freizugeben. Fehler beim Schließen des Datenstroms führen dazu, dass ihre Anwendung keine Verbindungen mehr hat.

Hinweis

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.

Hinweis

Dieser Member gibt Ablaufverfolgungsinformationen aus, wenn Sie die Netzwerkablaufverfolgung in der Anwendung aktivieren. Weitere Informationen finden Sie unter Netzwerkablaufverfolgung im .NET Framework.

Weitere Informationen

Gilt für:

GetRequestStream(TransportContext)

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

Ruft ein Stream-Objekt ab, das zum Schreiben von Anforderungsdaten verwendet wird und das dem Datenstrom zugeordnete TransportContext ausgibt.

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

Der TransportContext für den Stream.

Gibt zurück

Ein Stream, der zum Schreiben von Anforderungsdaten verwendet werden soll.

Ausnahmen

Die GetRequestStream()-Methode konnte den Stream nicht abrufen.

Die GetRequestStream()-Methode wurde mehrmals aufgerufen.

- oder -

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

Die Anforderungcacheprüfung hat angezeigt, dass die Antwort auf diese Anforderung aus dem Cache erfolgen werden kann. Allerdings dürfen Anforderungen, die Daten schreiben, nicht den Cache verwenden. Diese Ausnahme kann auftreten, wenn Sie eine benutzerdefinierte Cacheprüfung verwenden, die nicht ordnungsgemäß implementiert ist.

Die Method-Eigenschaft ist GET oder HEAD.

- oder -

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

Abort() wurde bereits aufgerufen.

- oder -

Das Zeitlimit für die Anforderung ist abgelaufen.

- oder -

Bei der Verarbeitung der Anforderung ist ein Fehler aufgetreten.

Hinweise

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

Einige Anwendungen, die integrierte Windows-Authentifizierung mit erweitertem Schutz verwenden, müssen möglicherweise in der Lage sein, die von verwendete HttpWebRequest Transportschicht abzufragen, um das Kanalbindungstoken (Channel Binding Token, 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 vor dem Abrufen des Datenstroms erfolgen.

Sie müssen die Stream.Close -Methode aufrufen, um den Stream zu schließen und die Verbindung zur Wiederverwendung freizugeben. Fehler beim Schließen des Datenstroms führen dazu, dass ihre Anwendung keine Verbindungen mehr hat.

Hinweis

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.

Hinweis

Dieser Member gibt Ablaufverfolgungsinformationen aus, wenn Sie die Netzwerkablaufverfolgung in der Anwendung aktivieren. Weitere Informationen finden Sie unter Netzwerkablaufverfolgung im .NET Framework.

Weitere Informationen

Gilt für: