Exporter (0) Imprimer
Développer tout
Cet article a fait l'objet d'une traduction automatique. Déplacez votre pointeur sur les phrases de l'article pour voir la version originale de ce texte. Informations supplémentaires.
Traduction
Source

HttpWebRequest.GetResponse, méthode

Retourne une réponse d'une ressource Internet.

Espace de noms :  System.Net
Assembly :  System (dans System.dll)

public override WebResponse GetResponse()

Valeur de retour

Type : System.Net.WebResponse
WebResponse contenant la réponse de la ressource Internet.

ExceptionCondition
InvalidOperationException

Le flux est déjà utilisé par un appel antérieur à BeginGetResponse.

ou

Une valeur est affectée à la propriété TransferEncoding et la propriété SendChunked est false.

ProtocolViolationException

La propriété Method a la valeur GET ou HEAD et la propriété ContentLength est supérieure à zéro ou la propriété SendChunked a la valeur true.

ou

La propriété KeepAlive a la valeur true, la propriété AllowWriteStreamBuffering a la valeur false, la propriété ContentLength a la valeur -1, la propriété SendChunked a la valeur false et la propriété Method a la valeur POST ou PUT.

ou

Le HttpWebRequest a un corps d'entité, mais la méthode GetResponse est appelée sans appeler la méthode GetRequestStream.

ou

Le ContentLength est supérieur à zéro, mais l'application n'écrit pas toutes les données promises.

NotSupportedException

Le validateur de cache de la requête a indiqué que la réponse à cette requête peut être fournie à partir du cache ; toutefois, cette requête comprend des données à envoyer au serveur. Les requêtes qui envoient 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.

WebException

La méthode Abort a été appelée au préalable.

ou

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

ou

Une erreur s'est produite pendant le traitement de la requête.

La méthode GetResponse retourne un objet WebResponse contenant la réponse de la ressource Internet. L'instance effectivement retournée est un objet HttpWebResponse et son type peut être converti en cette classe afin d'accéder aux propriétés propres à HTTP.

Une ProtocolViolationException est levée dans plusieurs cas lorsque les propriétés définies sur la classe HttpWebRequest sont en conflit. Cette exception se produit si une application affecte à la propriété ContentLength et à la propriété SendChunked la valeur true, puis envoie une requête HTTP GET. Cette exception se produit si une application essaie d'envoyer des données mémorisées en bloc à un serveur qui prend en charge uniquement le protocole HTTP 1.0, auquel cas cette fonction n'est pas prise en charge. Cette exception se produit si une application essaie d'envoyer des données sans définir la propriété ContentLength ou si SendChunked a la valeur false lorsque la mise en mémoire tampon est désactivée et sur une connexion KeepAlive (la propriété KeepAlive a la valeur true).

Mise en gardeAttention

Vous devez appeler la méthode Close pour fermer le flux et libérer la connexion. Si vous négligez cette opération, votre application ne disposera plus d'un nombre suffisant de connexions.

Lors de l'utilisation de la méthode POST, vous devez obtenir le flux de requête, écrire les données à publier, puis fermer le flux. Cette méthode se bloque durant l'attente du contenu à publier ; si aucun délai d'attente n'est défini et si vous ne fournissez aucun contenu, le thread appelant se bloque indéfiniment.

RemarqueRemarque

Les appels multiples à GetResponse retournent le même objet de réponse ; la demande n'est pas relancée.

RemarqueRemarque

Votre application ne peut pas associer des 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.

RemarqueRemarque

Si WebException est levée, utilisez les propriétés Response et Status de l'exception pour déterminer la réponse du serveur.

RemarqueRemarque

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 Traçage réseau dans le .NET Framework.

RemarqueRemarque

Pour des raisons de sécurité, les cookies sont désactivés par défaut. Si vous souhaitez employer les cookies, utilisez la propriété CookieContainer pour les activer.

L'exemple de code suivant obtient la réponse à une requête.


using System;
using System.Net;
using System.Text;
using System.IO;


    public class Test
    {
        // Specify the URL to receive the request.
        public static void Main (string[] args)
        {
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create (args[0]);

            // Set some reasonable limits on resources used by this request
            request.MaximumAutomaticRedirections = 4;
            request.MaximumResponseHeadersLength = 4;
            // Set credentials to use for this request.
            request.Credentials = CredentialCache.DefaultCredentials;
            HttpWebResponse response = (HttpWebResponse)request.GetResponse ();

            Console.WriteLine ("Content length is {0}", response.ContentLength);
            Console.WriteLine ("Content type is {0}", response.ContentType);

            // Get the stream associated with the response.
            Stream receiveStream = response.GetResponseStream ();

            // Pipes the stream to a higher level stream reader with the required encoding format. 
            StreamReader readStream = new StreamReader (receiveStream, Encoding.UTF8);

            Console.WriteLine ("Response stream received.");
            Console.WriteLine (readStream.ReadToEnd ());
            response.Close ();
            readStream.Close ();
        }
    }

/*
The output from this example will vary depending on the value passed into Main 
but will be similar to the following:

Content length is 1542
Content type is text/html; charset=utf-8
Response stream received.
<html>
...
</html>

*/


.NET Framework

Pris en charge dans : 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Pris en charge dans : 4, 3.5 SP1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (rôle principal du serveur non pris en charge), Windows Server 2008 R2 (rôle principal du serveur pris en charge avec SP1 ou version ultérieure ; Itanium non pris en charge)

Le .NET Framework ne prend pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.

Ajouts de la communauté

AJOUTER
Microsoft réalise une enquête en ligne pour recueillir votre opinion sur le site Web de MSDN. Si vous choisissez d’y participer, cette enquête en ligne vous sera présentée lorsque vous quitterez le site Web de MSDN.

Si vous souhaitez y participer,
Afficher:
© 2014 Microsoft