HttpWebRequest Classe
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Fournit une implémentation http spécifique à la classe WebRequest.
public ref class HttpWebRequest : System::Net::WebRequest
public ref class HttpWebRequest : System::Net::WebRequest, System::Runtime::Serialization::ISerializable
public class HttpWebRequest : System.Net.WebRequest
public class HttpWebRequest : System.Net.WebRequest, System.Runtime.Serialization.ISerializable
[System.Serializable]
public class HttpWebRequest : System.Net.WebRequest, System.Runtime.Serialization.ISerializable
type HttpWebRequest = class
inherit WebRequest
type HttpWebRequest = class
inherit WebRequest
interface ISerializable
[<System.Serializable>]
type HttpWebRequest = class
inherit WebRequest
interface ISerializable
Public Class HttpWebRequest
Inherits WebRequest
Public Class HttpWebRequest
Inherits WebRequest
Implements ISerializable
- Héritage
- Héritage
- Attributs
- Implémente
Exemples
L’exemple de code suivant crée une HttpWebRequest pour l’URI http://www.contoso.com/
.
HttpWebRequest^ myReq = dynamic_cast<HttpWebRequest^>(WebRequest::Create( "http://www.contoso.com/" ));
HttpWebRequest myReq =
(HttpWebRequest)WebRequest.Create("http://www.contoso.com/");
Dim myReq As HttpWebRequest = _
WebRequest.Create("http://www.contoso.com/")
Remarques
Prudence
WebRequest
, HttpWebRequest
, ServicePoint
et WebClient
sont obsolètes et vous ne devez pas les utiliser pour le nouveau développement. Utilisez HttpClient à la place.
La classe HttpWebRequest prend en charge les propriétés et méthodes définies dans WebRequest et pour les propriétés et méthodes supplémentaires qui permettent à l’utilisateur d’interagir directement avec des serveurs à l’aide de HTTP.
N’utilisez pas le constructeur HttpWebRequest. Utilisez la méthode WebRequest.Create pour initialiser de nouveaux objets HttpWebRequest. Si le schéma de l’URI (Uniform Resource Identifier) est http://
ou https://
, Create retourne un objet HttpWebRequest.
La méthode GetResponse effectue une requête synchrone à la ressource spécifiée dans la propriété RequestUri et retourne un HttpWebResponse qui contient l’objet de réponse. Les données de réponse peuvent être reçues à l’aide du flux retourné par GetResponseStream. Si l’objet réponse ou le flux de réponse est fermé, les données restantes sont perdues. Les données restantes seront vidées et le socket sera réutilisé pour les demandes suivantes lors de la fermeture de l’objet ou du flux de réponse si les conditions suivantes contiennent : il s’agit d’une demande de conservation ou de pipeline, seule une petite quantité de données doit être reçue, ou les données restantes sont reçues dans un petit intervalle de temps. Si aucune des conditions mentionnées n’est conservée ou si le temps de drainage n’est dépassé, le socket est fermé. Pour les connexions continues ou pipelines, nous vous recommandons vivement de lire les flux jusqu’à ce que l’EOF soit lu. Cela garantit que le socket sera réutilisé pour les requêtes suivantes, ce qui entraînera de meilleures performances et moins de ressources utilisées.
Lorsque vous souhaitez envoyer des données à la ressource, la méthode GetRequestStream retourne un objet Stream à utiliser pour envoyer des données. Les méthodes BeginGetRequestStream et EndGetRequestStream fournissent un accès asynchrone au flux de données d’envoi.
Pour l’authentification du client avec HttpWebRequest, le certificat client doit être installé dans le magasin de certificats My de l’utilisateur actuel.
La classe HttpWebRequest lève une WebException lorsque des erreurs se produisent lors de l’accès à une ressource. La propriété WebException.Status contient une valeur WebExceptionStatus qui indique la source de l’erreur. Lorsque WebException.Status est WebExceptionStatus.ProtocolError, la propriété Response contient le HttpWebResponse reçu de la ressource.
HttpWebRequest expose les valeurs d’en-tête HTTP courantes envoyées à la ressource Internet en tant que propriétés, définies par méthodes ou définies par le système ; le tableau suivant contient une liste complète. Vous pouvez définir d’autres en-têtes dans la propriété Headers en tant que paires nom/valeur. Notez que les serveurs et les caches peuvent modifier ou ajouter des en-têtes pendant la demande.
Le tableau suivant répertorie les en-têtes HTTP définis par les propriétés ou les méthodes ou le système.
En-tête | Défini par |
---|---|
Accept |
Défini par la propriété Accept. |
Connection |
Défini par la propriété Connection, KeepAlive propriété. |
Content-Length |
Défini par la propriété ContentLength. |
Content-Type |
Défini par la propriété ContentType. |
Expect |
Défini par la propriété Expect. |
Date |
Défini par le système sur la date actuelle. |
Host |
Défini par le système sur les informations d’hôte actuelles. |
If-Modified-Since |
Défini par la propriété IfModifiedSince. |
Range |
Défini par la méthode AddRange. |
Referer |
Défini par la propriété Referer. |
Transfer-Encoding |
Définie par la propriété TransferEncoding (la propriété SendChunked doit être true ). |
User-Agent |
Défini par la propriété UserAgent. |
Note
HttpWebRequest est inscrit automatiquement. Vous n’avez pas besoin d’appeler la méthode RegisterPrefix pour inscrire System.Net.HttpWebRequest avant d’utiliser des URI commençant par http://
ou https://
.
Le fichier de configuration de l’ordinateur local ou de l’application peut spécifier qu’un proxy par défaut doit être utilisé. Si la propriété Proxy est spécifiée, les paramètres proxy de la propriété Proxy remplacent l’ordinateur local ou le fichier de configuration de l’application et l’instance de HttpWebRequest utilise les paramètres de proxy spécifiés. Si aucun proxy n’est spécifié dans un fichier de configuration et que la propriété Proxy n’est pas spécifiée, la classe HttpWebRequest utilise les paramètres de proxy hérités des options Internet sur l’ordinateur local. S’il n’existe aucun paramètre proxy dans les options Internet, la demande est envoyée directement au serveur.
Note
Framework met en cache les sessions SSL au fur et à mesure qu’elles sont créées et tente de réutiliser une session mise en cache pour une nouvelle requête, si possible. Lorsque vous tentez de réutiliser une session SSL, l’infrastructure utilise le premier élément de ClientCertificates (le cas échéant) ou tente de réutiliser une session anonyme si ClientCertificates est vide.
Note
Pour des raisons de sécurité, les cookies sont désactivés par défaut. Si vous souhaitez utiliser des cookies, utilisez la propriété CookieContainer pour activer les cookies.
.NET Framework 4.6 inclut une nouvelle fonctionnalité de sécurité qui bloque les algorithmes de chiffrement et de hachage non sécurisés pour les connexions. Les applications utilisant TLS/SSL via des API telles que HttpClient, HttpWebRequest, FTPClient, SmtpClient, SslStream, etc. et ciblant .NET Framework 4.6 obtiennent le comportement plus sécurisé par défaut.
Les développeurs peuvent refuser ce comportement afin de maintenir l’interopérabilité avec leurs services SSL3 existants OU TLS w/ RC4. Cet article explique comment modifier votre code afin que le nouveau comportement soit désactivé.
Constructeurs
HttpWebRequest() |
Obsolète.
Obsolète.
Initialise une nouvelle instance de la classe HttpWebRequest. Ce constructeur est obsolète. |
HttpWebRequest(SerializationInfo, StreamingContext) |
Obsolète.
Obsolète.
Obsolète.
Obsolète.
Initialise une nouvelle instance de la classe HttpWebRequest à partir des instances spécifiées des classes SerializationInfo et StreamingContext. Ce constructeur est obsolète. |
Propriétés
Accept |
Obtient ou définit la valeur de l’en-tête HTTP |
Address |
Obtient l’URI (Uniform Resource Identifier) de la ressource Internet qui répond réellement à la requête. |
AllowAutoRedirect |
Obtient ou définit une valeur qui indique si la demande doit suivre les réponses de redirection. |
AllowReadStreamBuffering |
Obtient ou définit une valeur qui indique s’il faut mettre en mémoire tampon la réception de la ressource Internet. |
AllowWriteStreamBuffering |
Obtient ou définit une valeur qui indique s’il faut mettre en mémoire tampon les données envoyées à la ressource Internet. |
AuthenticationLevel |
Obtient ou définit des valeurs indiquant le niveau d’authentification et d’emprunt d’identité utilisé pour cette requête. (Hérité de WebRequest) |
AutomaticDecompression |
Obtient ou définit le type de décompression utilisé. |
CachePolicy |
Obtient ou définit la stratégie de cache pour cette requête. (Hérité de WebRequest) |
ClientCertificates |
Obtient ou définit la collection de certificats de sécurité associés à cette requête. |
Connection |
Obtient ou définit la valeur de l’en-tête HTTP |
ConnectionGroupName |
Obtient ou définit le nom du groupe de connexions pour la demande. |
ConnectionGroupName |
En cas de substitution dans une classe descendante, obtient ou définit le nom du groupe de connexions pour la demande. (Hérité de WebRequest) |
ContentLength |
Obtient ou définit l’en-tête HTTP |
ContentLength |
En cas de substitution dans une classe descendante, obtient ou définit la longueur du contenu des données de requête envoyées. (Hérité de WebRequest) |
ContentType |
Obtient ou définit la valeur de l’en-tête HTTP |
ContinueDelegate |
Obtient ou définit la méthode déléguée appelée lorsqu’une réponse HTTP 100-continue est reçue de la ressource Internet. |
ContinueTimeout |
Obtient ou définit un délai d’expiration, en millisecondes, pour attendre que le 100-Continue soit reçu du serveur. |
CookieContainer |
Obtient ou définit les cookies associés à la requête. |
CreatorInstance |
Obsolète.
En cas de substitution dans une classe descendante, obtient l’objet factory dérivé de la classe IWebRequestCreate utilisée pour créer le WebRequest instancié pour effectuer la requête à l’URI spécifié. (Hérité de WebRequest) |
Credentials |
Obtient ou définit des informations d’authentification pour la demande. |
Date |
Obtient ou définit la valeur d’en-tête HTTP |
DefaultCachePolicy |
Obtient ou définit la stratégie de cache par défaut pour cette requête. |
DefaultMaximumErrorResponseLength |
Obtient ou définit la longueur maximale par défaut d’une réponse d’erreur HTTP. |
DefaultMaximumResponseHeadersLength |
Obtient ou définit la valeur par défaut de la propriété MaximumResponseHeadersLength. |
Expect |
Obtient ou définit la valeur de l’en-tête HTTP |
HaveResponse |
Obtient une valeur qui indique si une réponse a été reçue d’une ressource Internet. |
Headers |
Spécifie une collection des paires nom/valeur qui composent les en-têtes HTTP. |
Host |
Obtient ou définit la valeur d’en-tête de l’hôte à utiliser dans une requête HTTP indépendante de l’URI de requête. |
IfModifiedSince |
Obtient ou définit la valeur de l’en-tête HTTP |
ImpersonationLevel |
Obtient ou définit le niveau d’emprunt d’identité de la requête actuelle. (Hérité de WebRequest) |
KeepAlive |
Obtient ou définit une valeur qui indique s’il faut établir une connexion persistante à la ressource Internet. |
MaximumAutomaticRedirections |
Obtient ou définit le nombre maximal de redirections que la requête suit. |
MaximumResponseHeadersLength |
Obtient ou définit la longueur maximale autorisée des en-têtes de réponse. |
MediaType |
Obtient ou définit le type de média de la requête. |
Method |
Obtient ou définit la méthode de la requête. |
Pipelined |
Obtient ou définit une valeur qui indique s’il faut pipeliner la requête vers la ressource Internet. |
PreAuthenticate |
Obtient ou définit une valeur qui indique s’il faut envoyer un en-tête d’autorisation avec la requête. |
PreAuthenticate |
En cas de substitution dans une classe descendante, indique s’il faut pré-authentifier la requête. (Hérité de WebRequest) |
ProtocolVersion |
Obtient ou définit la version de HTTP à utiliser pour la requête. |
Proxy |
Obtient ou définit des informations de proxy pour la requête. |
Proxy |
En cas de substitution dans une classe descendante, obtient ou définit le proxy réseau à utiliser pour accéder à cette ressource Internet. (Hérité de WebRequest) |
ReadWriteTimeout |
Obtient ou définit un délai d’expiration en millisecondes lors de l’écriture dans ou de la lecture à partir d’un flux. |
Referer |
Obtient ou définit la valeur de l’en-tête HTTP |
RequestUri |
Obtient l’URI (Uniform Resource Identifier) d’origine de la requête. |
SendChunked |
Obtient ou définit une valeur qui indique s’il faut envoyer des données dans des segments à la ressource Internet. |
ServerCertificateValidationCallback |
Obtient ou définit une fonction de rappel pour valider le certificat de serveur. |
ServicePoint |
Obtient le point de service à utiliser pour la requête. |
SupportsCookieContainer |
Obtient une valeur qui indique si la demande fournit la prise en charge d’un CookieContainer. |
Timeout |
Obtient ou définit la valeur de délai d’attente en millisecondes pour les méthodes GetResponse() et GetRequestStream(). |
Timeout |
Obtient ou définit la durée, en millisecondes, avant l’expiration de la requête. (Hérité de WebRequest) |
TransferEncoding |
Obtient ou définit la valeur de l’en-tête HTTP |
UnsafeAuthenticatedConnectionSharing |
Obtient ou définit une valeur qui indique s’il faut autoriser le partage de connexion authentifiée NTLM à haut débit. |
UseDefaultCredentials |
Obtient ou définit une valeur Boolean qui contrôle si les informations d’identification par défaut sont envoyées avec des requêtes. |
UseDefaultCredentials |
En cas de substitution dans une classe descendante, obtient ou définit une valeur Boolean qui contrôle si DefaultCredentials sont envoyées avec des requêtes. (Hérité de WebRequest) |
UserAgent |
Obtient ou définit la valeur de l’en-tête HTTP |
Méthodes
Abort() |
Annule une demande à une ressource Internet. |
AddRange(Int32) |
Ajoute un en-tête de plage d’octets à une demande pour une plage spécifique à partir du début ou de la fin des données demandées. |
AddRange(Int32, Int32) |
Ajoute un en-tête de plage d’octets à la demande d’une plage spécifiée. |
AddRange(Int64) |
Ajoute un en-tête de plage d’octets à une demande pour une plage spécifique à partir du début ou de la fin des données demandées. |
AddRange(Int64, Int64) |
Ajoute un en-tête de plage d’octets à la demande d’une plage spécifiée. |
AddRange(String, Int32) |
Ajoute un en-tête Range à une demande d’une plage spécifique à partir du début ou de la fin des données demandées. |
AddRange(String, Int32, Int32) |
Ajoute un en-tête de plage à une demande pour une plage spécifiée. |
AddRange(String, Int64) |
Ajoute un en-tête Range à une demande d’une plage spécifique à partir du début ou de la fin des données demandées. |
AddRange(String, Int64, Int64) |
Ajoute un en-tête de plage à une demande pour une plage spécifiée. |
BeginGetRequestStream(AsyncCallback, Object) |
Commence une demande asynchrone d’un objet Stream à utiliser pour écrire des données. |
BeginGetResponse(AsyncCallback, Object) |
Commence une requête asynchrone vers une ressource Internet. |
CreateObjRef(Type) |
Crée un objet qui contient toutes les informations pertinentes requises pour générer un proxy utilisé pour communiquer avec un objet distant. (Hérité de MarshalByRefObject) |
EndGetRequestStream(IAsyncResult) |
Met fin à une demande asynchrone d’un objet Stream à utiliser pour écrire des données. |
EndGetRequestStream(IAsyncResult, TransportContext) |
Met fin à une demande asynchrone d’un objet Stream à utiliser pour écrire des données et génère le TransportContext associé au flux. |
EndGetResponse(IAsyncResult) |
Met fin à une requête asynchrone à une ressource Internet. |
Equals(Object) |
Détermine si l’objet spécifié est égal à l’objet actuel. (Hérité de Object) |
GetHashCode() |
Retourne une valeur de hachage pour une instance de WebRequest. |
GetHashCode() |
Sert de fonction de hachage par défaut. (Hérité de Object) |
GetLifetimeService() |
Obsolète.
Récupère l’objet de service de durée de vie actuel qui contrôle la stratégie de durée de vie de cette instance. (Hérité de MarshalByRefObject) |
GetObjectData(SerializationInfo, StreamingContext) |
Obsolète.
Obsolète.
Obsolète.
Remplit une SerializationInfo avec les données requises pour sérialiser l’objet cible. |
GetObjectData(SerializationInfo, StreamingContext) |
Obsolète.
Remplit une SerializationInfo avec les données nécessaires pour sérialiser l’objet cible. (Hérité de WebRequest) |
GetRequestStream() |
Obtient un objet Stream à utiliser pour écrire des données de requête. |
GetRequestStream() |
En cas de substitution dans une classe descendante, retourne une Stream pour écrire des données dans la ressource Internet. (Hérité de WebRequest) |
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. |
GetRequestStreamAsync() |
En cas de substitution dans une classe descendante, retourne une Stream pour écrire des données dans la ressource Internet en tant qu’opération asynchrone. (Hérité de WebRequest) |
GetResponse() |
Retourne une réponse à partir d’une ressource Internet. |
GetResponse() |
En cas de substitution dans une classe descendante, retourne une réponse à une requête Internet. (Hérité de WebRequest) |
GetResponseAsync() |
En cas de substitution dans une classe descendante, retourne une réponse à une requête Internet en tant qu’opération asynchrone. (Hérité de WebRequest) |
GetType() |
Obtient la Type de l’instance actuelle. (Hérité de Object) |
InitializeLifetimeService() |
Obsolète.
Obtient un objet de service de durée de vie pour contrôler la stratégie de durée de vie de cette instance. (Hérité de MarshalByRefObject) |
MemberwiseClone() |
Crée une copie superficielle du Objectactuel. (Hérité de Object) |
MemberwiseClone(Boolean) |
Crée une copie superficielle de l’objet MarshalByRefObject actuel. (Hérité de MarshalByRefObject) |
ToString() |
Retourne une chaîne qui représente l’objet actuel. (Hérité de Object) |
Implémentations d’interfaces explicites
ISerializable.GetObjectData(SerializationInfo, StreamingContext) |
Obsolète.
Obsolète.
Obsolète.
Remplit une SerializationInfo avec les données nécessaires pour sérialiser l’objet cible. |
Méthodes d’extension
GetRequestMetadata(HttpWebRequest) |
Obtient les métadonnées pour les requêtes sortantes à utiliser à des fins de télémétrie. |
SetRequestMetadata(HttpWebRequest, RequestMetadata) |
Définit les métadonnées pour les requêtes sortantes à utiliser à des fins de télémétrie. |
S’applique à
Voir aussi
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour