HttpWebRequest.GetRequestStream Methode

Definition

Ruft ein Stream-Objekt ab, das zum Schreiben von Anforderungsdaten verwendet werden soll.Gets a Stream object to use to write request data.

Überlädt

GetRequestStream()

Ruft ein Stream-Objekt ab, das zum Schreiben von Anforderungsdaten verwendet werden soll.Gets a Stream object to use to write request data.

GetRequestStream(TransportContext)

Ruft ein Stream-Objekt ab, das zum Schreiben von Anforderungsdaten verwendet wird und das dem Datenstrom zugeordnete TransportContext ausgibt.Gets a Stream object to use to write request data and outputs the TransportContext associated with the stream.

GetRequestStream()

Ruft ein Stream-Objekt ab, das zum Schreiben von Anforderungsdaten verwendet werden soll.Gets a Stream object to use to write request data.

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.A Stream to use to write request data.

Ausnahmen

Die Method-Eigenschaft ist GET oder HEAD.The Method property is GET or HEAD.

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

Die GetRequestStream()-Methode wurde mehrmals aufgerufen.The GetRequestStream() method is called more than once.

- oder --or- TransferEncoding ist auf einen Wert festgelegt, und SendChunked ist false.TransferEncoding is set to a value and SendChunked is 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.The request cache validator indicated that the response for this request can be served from the cache; however, requests that write data must not use the cache. Diese Ausnahme kann auftreten, wenn Sie eine benutzerdefinierte Cacheprüfung verwenden, die nicht ordnungsgemäß implementiert ist.This exception can occur if you are using a custom cache validator that is incorrectly implemented.

Abort() wurde bereits aufgerufen.Abort() was previously called.

- oder --or- Das Zeitlimit für die Anforderung ist abgelaufen.The time-out period for the request expired.

- oder --or- Fehler beim Verarbeiten der Anforderung.An error occurred while processing the request.

In einer .NET Compact Framework-Anwendung wurde ein Anforderungsstream mit leerem Inhalt nicht ordnungsgemäß abgerufen und geschlossen.In a .NET Compact Framework application, a request stream with zero content length was not obtained and closed correctly. 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.).For more information about handling zero content length requests, see Network Programming in the .NET Compact Framework.

Beispiele

Im folgenden Codebeispiel wird die GetRequestStream-Methode verwendet, um eine Datenstrom Instanz zurückzugeben.The following code example uses the GetRequestStream method to return a stream instance.

// 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 Datenstrom zurück, der zum Senden von Daten für die HttpWebRequestverwendet werden soll.The GetRequestStream method returns a stream to use to send data for the HttpWebRequest. Nachdem das Stream Objekt zurückgegeben wurde, können Sie mithilfe der Stream.Write-Methode Daten mit dem HttpWebRequest senden.After the Stream object has been returned, you can send data with the HttpWebRequest by using the Stream.Write method.

Wenn eine Anwendung den Wert der ContentLength-Eigenschaft festlegen muss, muss dies vor dem Abrufen des Streams erfolgen.If an application needs to set the value of the ContentLength property, then this must be done before retrieving the stream.

Sie müssen die Stream.Close-Methode aufzurufen, um den Stream zu schließen und die Verbindung für die Wiederverwendung freizugeben.You must call the Stream.Close method to close the stream and release the connection for reuse. Wenn Sie den Stream nicht schließen, wird für die Anwendung keine Verbindung mehr hergestellt.Failure to close the stream causes your application to run out of connections.

Hinweis

In Ihrer Anwendung können keine synchronen und asynchronen Methoden für eine bestimmte Anforderung gemischt werden.Your application cannot mix synchronous and asynchronous methods for a particular request. Wenn Sie die GetRequestStream-Methode aufrufen, müssen Sie die GetResponse-Methode verwenden, um die Antwort abzurufen.If you call the GetRequestStream method, you must use the GetResponse method to retrieve the response.

Hinweis

Dieser Member gibt Ablaufverfolgungsinformationen aus, wenn Sie die Netzwerkablaufverfolgung in der Anwendung aktivieren.This member outputs trace information when you enable network tracing in your application. Weitere Informationen finden Sie unter Netzwerk Ablauf Verfolgung in der .NET Framework.For more information, see Network Tracing in the .NET Framework.

Siehe auch

GetRequestStream(TransportContext)

Ruft ein Stream-Objekt ab, das zum Schreiben von Anforderungsdaten verwendet wird und das dem Datenstrom zugeordnete TransportContext ausgibt.Gets a Stream object to use to write request data and outputs the TransportContext associated with the stream.

public:
 System::IO::Stream ^ GetRequestStream([Runtime::InteropServices::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.The TransportContext for the Stream.

Gibt zurück

Ein Stream, der zum Schreiben von Anforderungsdaten verwendet werden soll.A Stream to use to write request data.

Ausnahmen

Die GetRequestStream()-Methode konnte den Stream nicht abrufen.The GetRequestStream() method was unable to obtain the Stream.

Die GetRequestStream()-Methode wurde mehrmals aufgerufen.The GetRequestStream() method is called more than once.

- oder --or- TransferEncoding ist auf einen Wert festgelegt, und SendChunked ist false.TransferEncoding is set to a value and SendChunked is 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.The request cache validator indicated that the response for this request can be served from the cache; however, requests that write data must not use the cache. Diese Ausnahme kann auftreten, wenn Sie eine benutzerdefinierte Cacheprüfung verwenden, die nicht ordnungsgemäß implementiert ist.This exception can occur if you are using a custom cache validator that is incorrectly implemented.

Die Method-Eigenschaft ist GET oder HEAD.The Method property is GET or HEAD.

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

Abort() wurde bereits aufgerufen.Abort() was previously called.

- oder --or- Das Zeitlimit für die Anforderung ist abgelaufen.The time-out period for the request expired.

- oder --or- Fehler beim Verarbeiten der Anforderung.An error occurred while processing the request.

Hinweise

Die GetRequestStream-Methode gibt einen Datenstrom zurück, mit dem Daten für die HttpWebRequest gesendet und die dem Stream zugeordneten TransportContext ausgegeben werden.The GetRequestStream method returns a stream to use to send data for the HttpWebRequest and outputs the TransportContext associated with the stream. Nachdem das Stream Objekt zurückgegeben wurde, können Sie mithilfe der Stream.Write-Methode Daten mit dem HttpWebRequest senden.After the Stream object has been returned, you can send data with the HttpWebRequest by using the Stream.Write method.

Einige Anwendungen, die die integrierte Windows-Authentifizierung mit erweitertem Schutz verwenden, müssen möglicherweise die von HttpWebRequest verwendete Transportschicht Abfragen, um das channelbindungstoken (CBT) aus dem zugrunde liegenden TLS-Kanal abzurufen.Some applications that use integrated Windows authentication with extended protection may need to be able to query the transport layer used by HttpWebRequest in order to retrieve the channel binding token (CBT) from the underlying TLS channel. Die GetRequestStream-Methode ermöglicht den Zugriff auf diese Informationen für HTTP-Methoden, die über einen Anforderungs Text verfügen (POST und PUT Anforderungen).The GetRequestStream method provides access to this information for HTTP methods which have a request body (POST and PUT requests). Dies ist nur erforderlich, wenn die Anwendung ihre eigene Authentifizierung implementiert und Zugriff auf das CBT benötigt.This is only needed if the application is implementing its own authentication and needs access to the CBT.

Wenn eine Anwendung den Wert der ContentLength-Eigenschaft festlegen muss, muss dies vor dem Abrufen des Streams erfolgen.If an application needs to set the value of the ContentLength property, then this must be done before retrieving the stream.

Sie müssen die Stream.Close-Methode aufzurufen, um den Stream zu schließen und die Verbindung für die Wiederverwendung freizugeben.You must call the Stream.Close method to close the stream and release the connection for reuse. Wenn Sie den Stream nicht schließen, wird für die Anwendung keine Verbindung mehr hergestellt.Failure to close the stream causes your application to run out of connections.

Hinweis

In Ihrer Anwendung können keine synchronen und asynchronen Methoden für eine bestimmte Anforderung gemischt werden.Your application cannot mix synchronous and asynchronous methods for a particular request. Wenn Sie die GetRequestStream-Methode aufrufen, müssen Sie die GetResponse-Methode verwenden, um die Antwort abzurufen.If you call the GetRequestStream method, you must use the GetResponse method to retrieve the response.

Hinweis

Dieser Member gibt Ablaufverfolgungsinformationen aus, wenn Sie die Netzwerkablaufverfolgung in der Anwendung aktivieren.This member outputs trace information when you enable network tracing in your application. Weitere Informationen finden Sie unter Netzwerk Ablauf Verfolgung in der .NET Framework.For more information, see Network Tracing in the .NET Framework.

Siehe auch

Gilt für: