Comment faire pour effectuer une demande GET à l'aide de Visual C#

IMPORTANT : Cet article est issu d'une traduction automatique réalisée par un logiciel Microsoft et non par un traducteur professionnel. Cette traduction automatique a pu aussi être révisée par la communauté Microsoft grâce à la technologie Community Translation Framework (CTF). Pour en savoir plus sur cette technologie, veuillez consulter la page http://support.microsoft.com/gp/machine-translation-corrections/fr. Microsoft vous propose en effet des articles traduits par des professionnels, des articles issus de traductions automatiques et des articles issus de traductions automatiques révisées par la communauté Microsoft, de manière à ce que vous ayez accès à tous les articles de notre Base de connaissances dans votre langue. Il est important de noter que les articles issus de la traduction automatique, y compris ceux révisés par la communauté Microsoft, peuvent contenir des erreurs de vocabulaire, de syntaxe ou de grammaire. Microsoft ne pourra être tenu responsable des imprécisions, erreurs, ainsi que de tout dommage résultant d’une traduction incorrecte du contenu ou de son utilisation par les clients.

La version anglaise de cet article est la suivante: 307023
Pour obtenir une version Microsoft les .NET de Visual Basic de cet article, reportez-vous à la section. 301102.

Cet article fait référence aux espaces de noms bibliothèque de classes.NET Framework de la Microsoft suivant :
  • System.Net
  • System.IO
Résumé
Cet article décrit étape par étape comment effectuer une requête GET simple pour retrouver une page Web à partir d'Internet. Le Framework .NET de Microsoft inclut de nombreuses classes utiles pour la mise en réseau, y compris la possibilité d'effectuer des demandes Web.

Configuration requise

La liste suivante met en évidence le matériel recommandé, logiciel, infrastructure réseau et les service packs dont vous avez besoin :
  • Windows Server 2003, Microsoft Windows 2000Professional, Windows 2000 Server, Windows 2000 Advanced Server ou Microsoft Windows NT Server 4.0
  • Microsoft Visual Studio
Remarque Si vous êtes derrière un serveur proxy, vous devez disposer une adresse Web interne ou valeurs proxy statiques (voir les étapes 5 et 6 de la section « demande d'une Page Web ») pour tester le code dans cet article.

Demande une page Web

Il ya plusieurs utilisations de la récupération d'une page web par programme Cette capacité a été offerte aux programmeurs de Microsoft Visual Basic 6.0 par Internet Transfer Control ou par codage direct par les APIs WinInet.

Dans .NET, les espaces de noms System.Net fournissent la classe WebRequest pour encapsuler une requête pour une ressource Internet et la classe WebResponse pour représenter les données renvoyées.

À l'aide de ces objets, vous pouvez obtenir un flux qui représente la réponse à une demande particulière. Lorsque vous avez un flux, vous pouvez lire la réponse comme vous lisez à partir d'un fichier texte local ou de toute autre source.

Pour effectuer une demande GET, procédez comme suit :
  1. Démarrez Visual Studio.
  2. Créez une nouvelle Application Console dans Visual C#. VisualStudio crée automatiquement une classe publique et une méthode Main vide.
  3. Vérifiez que le projet fait référence au moins System.dll.
  4. Utilisez la directive using à l'espace de noms System.IO , espace de noms System et l'espace de noms System.NET (pour les objets de flux) afin que vous n'aurez pas de déclarations de toqualify à partir de ces espaces de noms ultérieurement dans votre code. Ces statementsmust être utilisée avant toute autre déclaration.
    using System;using System.Net;using System.IO;
  5. Pour cet exemple, il s'agit de coder en dur l'URL en tant que variable. Dans un système de surface, vous recevriez probablement cette valeur en tant que paramètre à afunction, ou sous la forme d'un argument de ligne de commande à une application de console.
    string sURL;sURL = "http://www.microsoft.com";
  6. Créer un nouvel objet WebRequest . Pour cela, vous pouvez uniquement par le biais de la méthode Create statique de la classe WebRequest ("New WebRequest" n'est pas valide). Fournir la lors d'URL cible de l'appel à Create pour initialiser l'objet ayant cette valeur.
    WebRequest wrGETURL;wrGETURL = WebRequest.Create(sURL);
  7. Si vous voulez demander des URL hors du réseau local, andyou situés derrière un serveur proxy, vous devez créer un objet WebProxy et ensuite fournir cet objet à l'objet WebRequest . L'objet WebProxy a un certain nombre de propriétés, qui ne sont pas définies dans l'échantillon de code ci-dessous, qui vous permettent de spécifier les mêmes informations de base que vous pouvez bien défini par les paramètres de proxy de Microsoft Internet Explorer.
    WebProxy myProxy = new WebProxy("myproxy",80);myProxy.BypassProxyOnLocal = true;wrGETURL.Proxy = myProxy;
  8. Si vous souhaitez utiliser les paramètres qui ont été alreadyconfigured dans Internet Explorer, vous pouvez pour cela par le biais de la méthode statique de la GetDefaultProxy de la classe WebProxy .
    wrGETURL.Proxy = WebProxy.GetDefaultProxy();
    Remarque Dans Visual Studio 2005 ou Visual Studio 2008, la méthode GetDefaultProxy fonctionne. Toutefois, cette méthode a été désapprouvée. Pour des informations supplémentaires sur la méthode GetDefaultProxy dans le.NET Framework de la Microsoft 2.0, reportez-vous au site Web followingMicrosoft Developer Network (MSDN) :
  9. Lorsque vous avez terminé le jeu de configuration de votre bysetting demande l'URL cible et en donnant des informations de proxy applicables, vous canuse votre demande pour obtenir un objet de flux de données qui correspond à la réponse à votre demande.
    Stream objStream;objStream = wrGETURL.GetResponse().GetResponseStream();
  10. Une fois que le flux de réponse, vous pouvez utiliser la streamas vous utilisez n'importe quel flux et vous pouvez lire le contenu de thestream ligne par ligne ou même toutes en même temps. La codeloop exemple ci-dessous lit le flux ligne par ligne jusqu'à ce que la méthode ReadLine renvoie la valeur null, en affichant chaque ligne sur la console.
    StreamReader objReader = new StreamReader(objStream);string sLine = "";int i = 0;while (sLine!=null){	i++;	sLine = objReader.ReadLine();	if (sLine!=null)		Console.WriteLine("{0}:{1}",i,sLine);}Console.ReadLine();
  11. Enregistrez et exécutez votre programme. Vérifiez que vous haveconfigured les informations proxy correctement pour votre environnement (reportez-vous à la section 7 et les étapes 8). Vous devriez voir des lignes de code HTML theconsole contenu numérotée et ces résultats à.

Listing complet du code

using System;using System.Net;using System.IO;namespace MakeAGETRequest_charp{	/// <summary>	/// Summary description for Class1.	/// </summary>	class Class1	{		static void Main(string[] args)		{			string sURL;			sURL = "http://www.microsoft.com";			WebRequest wrGETURL;			wrGETURL = WebRequest.Create(sURL);						WebProxy myProxy = new WebProxy("myproxy",80);			myProxy.BypassProxyOnLocal = true;	        wrGETURL.Proxy = WebProxy.GetDefaultProxy();			Stream objStream;			objStream = wrGETURL.GetResponse().GetResponseStream();			StreamReader objReader = new StreamReader(objStream);			string sLine = "";			int i = 0;			while (sLine!=null)			{				i++;				sLine = objReader.ReadLine();				if (sLine!=null)					Console.WriteLine("{0}:{1}",i,sLine);			}			Console.ReadLine();		}	}}

Avertissement : Cet article a été traduit automatiquement.

Propriétés

ID d'article : 307023 - Dernière mise à jour : 02/15/2016 01:00:00 - Révision : 6.0

Microsoft Visual C# 2005, Microsoft Visual C# .NET 2002 Initiation, Microsoft Visual C# 2008 Express Edition

  • kbhowtomaster kbio kbmt KB307023 KbMtfr
Commentaires