Partager via


HttpWebRequest.GetRequestStream Méthode

Définition

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

Surcharges

GetRequestStream()

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

GetRequestStream(TransportContext)

Obtient un objet Stream à utiliser pour écrire des données de requête et génère les TransportContext associées au flux.

GetRequestStream()

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

Obtient un objet Stream à utiliser pour écrire des données de 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

Un Stream à utiliser pour écrire des données de requête.

Exceptions

La propriété Method est GET ou HEAD.

-ou-

KeepAlive est true, AllowWriteStreamBuffering est false, ContentLength est -1, SendChunked est falseet Method est POST ou PUT.

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

-ou-

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

Le validateur du cache de requête a indiqué que la réponse de cette demande peut être traitée à 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 n’est pas implémenté correctement.

Abort() a été appelée précédemment.

-ou-

Délai d’expiration de la demande.

-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 fermé correctement. Pour plus d’informations sur la gestion des demandes de longueur de contenu zéro, consultez programmation réseau dans le .NET Compact Framework.

Exemples

L’exemple de code suivant utilise la méthode GetRequestStream 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

Prudence

WebRequest, HttpWebRequest, ServicePointet WebClient sont obsolètes et vous ne devez pas les utiliser pour le nouveau développement. Utilisez HttpClient à la place.

La méthode GetRequestStream 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 HttpWebRequest à l’aide de la méthode Stream.Write.

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

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

Note

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

Note

Ce membre génère des informations de suivi lorsque vous activez le suivi 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 des données de requête et génère les TransportContext associées 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

Un Stream à utiliser pour écrire des données de 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 est false.

Le validateur du cache de requête a indiqué que la réponse de cette demande peut être traitée à 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 n’est pas implémenté correctement.

La propriété Method est GET ou HEAD.

-ou-

KeepAlive est true, AllowWriteStreamBuffering est false, ContentLength est -1, SendChunked est falseet Method est POST ou PUT.

Abort() a été appelée précédemment.

-ou-

Délai d’expiration de la demande.

-ou-

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

Remarques

Prudence

WebRequest, HttpWebRequest, ServicePointet WebClient sont obsolètes et vous ne devez pas les utiliser pour le nouveau développement. Utilisez HttpClient à la place.

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

Certaines applications qui utilisent l’authentification Windows intégrée 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 méthode GetRequestStream 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 son propre authentification et a besoin d’accéder au CBT.

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

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

Note

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

Note

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

Voir aussi

S’applique à