Partager via


Programmation de protocoles enfichables

Les classes WebRequest et WebResponse abstraites fournissent la base des protocoles enfichables. En dérivant les classes spécifiques au protocole à partir de WebRequest et WebResponse, une application peut demander des données à une ressource Internet et lire la réponse sans spécifier le protocole utilisé.

Avant de pouvoir créer WebRequest, vous devez inscrire sa méthode Create. Utilisez la méthode RegisterPrefix statique de WebRequest pour inscrire un descendant WebRequest permettant de gérer un ensemble de demandes dans un schéma Internet particulier, dans un schéma et serveur ou dans un schéma, serveur et chemin d'accès. L'exemple de code suivant montre comment inscrire FtpWebRequest défini ailleurs. Dans cet exemple, FtpWebRequestCreator est l'objet qui implémente la méthode Create qui elle-même retourne l'objet FtpWebRequest.

L'exemple de code suivant suppose que vous avez écrit du code supplémentaire pour gérer le protocole FTP.

WebRequest.RegisterPrefix("ftp", new FtpWebRequestCreator());
WebRequest req = WebRequest.Create("ftp://ftp.contoso.com/");
[Visual Basic]
WebRequest.RegisterPrefix("ftp", New FtpWebRequestCreator())
Dim req As WebRequest = WebRequest.Create("ftp://ftp.contoso.com/")

Dans la plupart des cas, vous pourrez envoyer et recevoir des données à l'aide des méthodes et des propriétés de la classe WebRequest. Cependant, si vous devez accéder à des propriétés spécifiques au protocole, vous pouvez convertir une WebRequest en une instance de classe dérivée spécifique, comme dans l'exemple de code suivant.

HttpWebRequest httpreq = 
   (HttpWebRequest) WebRequest.Create("https://www.contoso.com/");
[Visual Basic]
Dim httpreq As HttpWebRequest = _
   CType(WebRequest.Create("https://www.contoso.com/"), HttpWebRequest)

Pour tirer profit des protocoles enfichables, vos descendants WebRequest doivent fournir une transaction demande/réponse par défaut qui n'exige pas la définition de propriétés spécifiques au protocole. Par exemple, la classe HttpWebRequest, qui implémente la classe WebRequest pour HTTP, fournit une demande GET et retourne une HttpWebResponse dérivée de WebResponse qui contient le flux retourné à partir du serveur Internet.

Voir aussi

Dérivation à partir de WebRequest | Dérivation à partir de WebResponse | Accès à Internet