HttpWebRequest.GetRequestStream Méthode

Définition

Obtient un objet Stream à utiliser pour écrire les données de la requête.

Surcharges

GetRequestStream()

Obtient un objet Stream à utiliser pour écrire les données de la requête.

GetRequestStream(TransportContext)

Obtient un objet Stream à utiliser pour écrire les données de la requête et exporte le TransportContext associé au flux.

GetRequestStream()

Source:
HttpWebRequest.cs
Source:
HttpWebRequest.cs
Source:
HttpWebRequest.cs

Obtient un objet Stream à utiliser pour écrire les données de la requête.

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

Retours

Stream à utiliser pour écrire les données de la requête.

Exceptions

La propriété Method est GET ou HEAD.

- ou -

KeepAlive est true, AllowWriteStreamBuffering est false, ContentLength a la valeur -1, SendChunked est false, et Method est POST ou PUT.

La méthode GetRequestStream() est appelée plusieurs fois.

- ou -

TransferEncoding est défini sur une valeur, et SendChunked a pour valeur false.

Le validateur du cache de demande a indiqué que la réponse à cette demande peut être obtenue à partir du cache. Toutefois, les demandes qui écrivent des données ne doivent pas utiliser le cache. Cette exception peut se produire si vous utilisez un validateur de cache personnalisé qui est implémenté de manière incorrecte.

Abort() a déjà été appelé.

- ou -

Le délai d’attente de la requête a expiré.

- ou -

Une erreur s’est produite lors du traitement de la demande.

Dans une application .NET Compact Framework, un flux de requête avec une longueur de contenu nulle n’a pas été obtenu et s’est fermé correctement. Pour plus d’informations sur la gestion des requêtes avec une longueur de contenu nulle, consultez Programmation réseau dans le .NET Compact Framework.

Exemples

L’exemple de code suivant utilise la GetRequestStream méthode pour retourner une instance de flux.

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

Remarques

La GetRequestStream méthode retourne un flux à utiliser pour envoyer des données pour le HttpWebRequest. Une fois l’objet Stream retourné, vous pouvez envoyer des données avec le à l’aide HttpWebRequest de la Stream.Write méthode .

Si une application doit définir la valeur de la ContentLength propriété, cette opération doit être effectuée avant de récupérer le flux.

Vous devez appeler la Stream.Close méthode pour fermer le flux et libérer la connexion pour réutilisation. Si vous ne fermez pas le flux, votre application n’a plus de connexions.

Notes

Votre application ne peut pas combiner des méthodes synchrones et asynchrones pour une demande particulière. Si vous appelez la GetRequestStream méthode, vous devez utiliser la GetResponse méthode pour récupérer la réponse.

Notes

Ce membre génère des informations de traçage lorsque vous activez le traçage réseau dans votre application. Pour plus d’informations, consultez Suivi réseau dans le .NET Framework.

Voir aussi

S’applique à

GetRequestStream(TransportContext)

Source:
HttpWebRequest.cs
Source:
HttpWebRequest.cs
Source:
HttpWebRequest.cs

Obtient un objet Stream à utiliser pour écrire les données de la requête et exporte le TransportContext associé au flux.

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

Paramètres

Retours

Stream à utiliser pour écrire les données de la requête.

Exceptions

La méthode GetRequestStream() n’a pas pu obtenir le Stream.

La méthode GetRequestStream() est appelée plusieurs fois.

- ou -

TransferEncoding est défini sur une valeur, et SendChunked a pour valeur false.

Le validateur du cache de demande a indiqué que la réponse à cette demande peut être obtenue à partir du cache. Toutefois, les demandes qui écrivent des données ne doivent pas utiliser le cache. Cette exception peut se produire si vous utilisez un validateur de cache personnalisé qui est implémenté de manière incorrecte.

La propriété Method est GET ou HEAD.

- ou -

KeepAlive est true, AllowWriteStreamBuffering est false, ContentLength a la valeur -1, SendChunked est false, et Method est POST ou PUT.

Abort() a déjà été appelé.

- ou -

Le délai d’attente de la requête a expiré.

- ou -

Une erreur s’est produite lors du traitement de la demande.

Remarques

La GetRequestStream méthode retourne un flux à utiliser pour envoyer des données pour et HttpWebRequest génère le TransportContext associé au flux. Une fois l’objet Stream retourné, vous pouvez envoyer des données avec le à l’aide HttpWebRequest de la Stream.Write méthode .

Certaines applications qui utilisent des Authentification Windows intégrées avec une protection étendue peuvent être en mesure d’interroger la couche de transport utilisée par HttpWebRequest afin de récupérer le jeton de liaison de canal (CBT) à partir du canal TLS sous-jacent. La GetRequestStream méthode fournit l’accès à ces informations pour les méthodes HTTP qui ont un corps de requête (POST et PUT requêtes). Cela n’est nécessaire que si l’application implémente sa propre authentification et a besoin d’accéder au CBT.

Si une application doit définir la valeur de la ContentLength propriété, cette opération doit être effectuée avant de récupérer le flux.

Vous devez appeler la Stream.Close méthode pour fermer le flux et libérer la connexion pour réutilisation. Si vous ne fermez pas le flux, votre application n’a plus de connexions.

Notes

Votre application ne peut pas combiner des méthodes synchrones et asynchrones pour une demande particulière. Si vous appelez la GetRequestStream méthode, vous devez utiliser la GetResponse méthode pour récupérer la réponse.

Notes

Ce membre génère des informations de traçage lorsque vous activez le traçage réseau dans votre application. Pour plus d’informations, consultez Suivi réseau dans le .NET Framework.

Voir aussi

S’applique à