Requête http

Soyez le premier à donner votre avis sur cette source.

Snippet vu 30 831 fois - Téléchargée 29 fois

Contenu du snippet

Voilà un exemple d'utilisation des classes HttpWebResponse et HttpWebRequest qui permettent d'effectuer une requête et d'en intercepter la réponse très facilement.

Source / Exemple :


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

namespace Http
{
	class Requete
	{
		[STAThread]
		static void Main(string[] args)
		{
			string Data = "Mes données\r\n";
			string Reponse = String.Empty;
			StreamWriter Sw = null; // Pour écrire les données
			StreamReader Sr = null; // Pour lire les données

			try
			{
				HttpWebRequest Req = (HttpWebRequest)WebRequest.Create("Mon Uri");
				Req.Method = "Ma méthode"; // POST ou GET
				Req.Referer = "Mon referer";
				Req.ContentType = "application/x-www-form-urlencoded"; // La plupart du temps
				Req.ContentLength = Data.Length; // La longueur des données

				Sw = new StreamWriter(Req.GetRequestStream());
				Sw.Write(Data); // On écrit les données
				Sw.Close(); // Puis on ferme le flux
				Sw = null;

				Sr = new StreamReader(((HttpWebResponse)Req.GetResponse()).GetResponseStream());
				Reponse = Sr.ReadToEnd(); // On choppe la réponse
				Sr.Close(); // Et on ferme
				Sw = null;
			}
			catch(Exception e) // En cas d'exception
			{
				if(Sw != null) // Si le flux est ouvert, on le ferme
					Sw.Close();
				if(Sr != null)
					Sr.Close();

				Console.WriteLine(e.Message + "\r\n\r\nL'application va maintenant se terminer...");

				return;
			}

			Console.WriteLine(Reponse);
		}
	}
}

Conclusion :


Les commentaires dans le code doivent suffire je pense...

A voir également

Ajouter un commentaire

Commentaires

Godzidane
Messages postés
9
Date d'inscription
mardi 4 juin 2002
Statut
Membre
Dernière intervention
2 juin 2004
-
Comment fais tu pour déterminer les paramètres dont le serveur a besoin pour te retourner une réponse. Il s'agit des paramètres que tu passes à la fonction : << SendToServer("......."); >> qui m'intriguent !!! En effet, j'essaye de reproduire le même principe mais la tentative de connexion au serveur se solde à chaque fois par un échec.
bucherb
Messages postés
412
Date d'inscription
lundi 26 mai 2003
Statut
Membre
Dernière intervention
13 août 2007
-
Perso j'ai jamais utilisé les HttpWebRequest, j'utilise la classe TcpClient... Je me connecte au serveur web et je construit ma requête, j'envoie et je reçois.. Easy.. Tu dis ce que tu veux au serveur...
bucherb
Messages postés
412
Date d'inscription
lundi 26 mai 2003
Statut
Membre
Dernière intervention
13 août 2007
-
Une question sur ton code:

C'est bien, mais comment tu fais ta requête...
LA méthode ok je veux bien, mais le reste c'est ou???????

GET /index.aspx HTTP/1.1

J'ose imaginer que "HTTP/1.1" se place tout seul, mais alors ou est-ce qu'il faut que j'initialise mon "/index.aspx".. pas clair ton truc..
bucherb
Messages postés
412
Date d'inscription
lundi 26 mai 2003
Statut
Membre
Dernière intervention
13 août 2007
-
De plus si tu n'as pas de données à envoyer (par exemple avec le verbe GET) tu met quoi dans ton Sw.Write???? Vraiment pas clair ton truc...
bucherb
Messages postés
412
Date d'inscription
lundi 26 mai 2003
Statut
Membre
Dernière intervention
13 août 2007
-
J'ai trouvé la réponse à ma question...

Maintenant pour ton code.. Laisse-moi t'éclairer lol, manque qqch..

http://fr.gotdotnet.com/quickstart/util/srcview.aspx?path=/quickstart/howto/samples/net/ASPXNet/webrequest.src&file=CS\webrequest.aspx&font=3

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.