HttpWebRequest.GetRequestStream Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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 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
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 in .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 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 in .NET Framework.
Weitere Informationen
- TransportContext
- GetChannelBinding(ChannelBindingKind)
- System.Security.Authentication.ExtendedProtection
- ChannelBinding
- Integrierte Windows-Authentifizierung unter Verwendung von "Erweiterter Schutz" (möglicherweise auf Englisch)
Gilt für:
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für