Cet article a fait l’objet d’une traduction automatique. Pour afficher l’article en anglais, activez la case d’option Anglais. Vous pouvez également afficher le texte anglais dans une fenêtre contextuelle en faisant glisser le pointeur de la souris sur le texte traduit.
Traduction
Anglais

HttpWebRequest.GetResponse méthode ()

 

Date de publication : novembre 2016

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.

Exception Condition
InvalidOperationException

Le flux est déjà utilisé par un appel précédent à BeginGetResponse.

ou

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

ProtocolViolationException

Method a pour valeur GET ou HEAD, et soit ContentLength est supérieur ou égal à zéro, soit SendChunked a pour valeur true.

ou

KeepAlive a pour valeur true, AllowWriteStreamBuffering a pour valeur false, ContentLength a pour valeur -1, SendChunked a pour valeur false, tandis que Method a pour valeur POST ou PUT.

ou

Le HttpWebRequest a un corps d’entité, mais la méthode GetResponse est appelée sans que soit appelée 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 du cache de demande a indiqué que la réponse à cette demande peut être fournie à partir du cache ; toutefois, cette demande comprend des données à envoyer au serveur. Les demandes 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

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

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.

Le GetResponse méthode renvoie un WebResponse objet qui contient la réponse de la ressource Internet. L’instance effectivement retournée est un HttpWebResponse, et peut être converti à cette classe pour accéder aux propriétés propres à HTTP.

Un ProtocolViolationException est levée dans plusieurs cas lorsque les propriétés définies sur la HttpWebRequest classe sont en conflit. Cette exception se produit si une application définit le ContentLength propriété et SendChunked propriété true, puis envoie une requête HTTP GET. Cette exception se produit si une application essaie d’envoyer mémorisé en bloc à un serveur qui prend uniquement en charge le protocole HTTP 1.0, où cela n’est pas compatible. Cette exception se produit si une application tente d’envoyer des données sans affecter la ContentLength propriété ou SendChunked est false lors de la mise en mémoire tampon est désactivée et sur une connexion keepalive (la KeepAlive propriété est true).

System_CAPS_cautionAttention

Vous devez appeler la Close méthode pour fermer le flux et libérer la connexion. Cela peut provoquer l’application à court de connexions.

Lorsque vous utilisez la méthode POST, vous devez obtenir le flux de demande, écrire les données à valider et fermer le flux. Cette méthode est bloquée en attente pour le contenu à publier ; Si aucun jeu de délai d’expiration et que vous ne fournissez pas de contenu, le thread appelant se bloque indéfiniment.

System_CAPS_noteRemarque

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

System_CAPS_noteRemarque

Votre application ne peut pas combiner des méthodes synchrones et asynchrones pour une demande spécifique. Si vous appelez le GetRequestStream (méthode), vous devez utiliser le GetResponse méthode pour récupérer la réponse.

System_CAPS_noteRemarque

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

System_CAPS_noteRemarque

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.

System_CAPS_noteRemarque

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

L’exemple de code suivant obtient la réponse à une demande.

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
Disponible depuis 1.1
Retour au début
Afficher: