Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

REQUÊTE HTTP


Information sur la source

Catégorie :Réseaux & Internet Source .NET ( DotNet ) Classé sous : httpwebresponse, httpwebrequest Niveau : Débutant Date de création : 18/06/2002 Date de mise à jour : 24/12/2002 12:36:15 Vu : 17 336

Note :
8 / 10 - par 6 personnes
8,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (7)
Ajouter un commentaire et/ou une note

Description

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

  • 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);
  • }
  • }
  • }
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...
 

Commentaires et avis

signaler à un administrateur
Commentaire de Godzidane le 06/12/2002 17:00:50

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.

signaler à un administrateur
Commentaire de bucherb le 21/11/2003 14:50:53

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...

signaler à un administrateur
Commentaire de bucherb le 20/01/2004 15:08:40

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..

signaler à un administrateur
Commentaire de bucherb le 20/01/2004 15:22:21

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...

signaler à un administrateur
Commentaire de bucherb le 20/01/2004 16:32:38

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

signaler à un administrateur
Commentaire de porgy le 15/04/2007 16:46:19

Bonjour ton code m'intéresse mais il utilise une url, or je souhaiterais stocker le contenu html de ma page une fois qu'elle a été générée. En fait j'utilise une sorte de signature électronique et je souhaiterais enregistrer dans ma base, le code HTML de ce qui a été signé en vue de pouvoir le relire avec un explorer web en cas de probleme.

Si tu as une idée je suis preneur.

Merci

Patrice

signaler à un administrateur
Commentaire de zebulon88 le 26/02/2009 23:42:06

meme question que Godzidane...où donne t-on les paramètres dans le cas d'une requete post?

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

HttpWebRequest.KeepAlive = true; [ par tommz ] Bonjour..j'ai fait un petit programme qui recupere des page internet, les parse, fait des actions, soumet des formulaire bien remplis etc, etc...le pr HttpWebRequest.Method = "Post" [ par zaka48 ] j'ai un probleme concernant le moyen d'afficher la reponse d'une requette HttpWebRequest.Method = "post" que j'ai definis sur un webform1 dans une se conserver une session avec HttpWebRequest [ par glachant ] Bonjour,je voudrais récupérer des pages web mais je ne sais pas comment conerver une session avec la méthodeHttpWebRequest.je récupère la première pag TcpClient ou HttpWebRequest pour un POST ou GET [ par Blacknight91 ] Bl@cknightBonjour,Je voudrais savoir comment utiliser l'une de ces 2 classes (TcpClient ou HttpWebRequest) afin d'envoyer une requête POST ou GET dans Attente d'une WebResponse ... [ par icedreamer ] Bonjour,Comment peut-on gérer l'attente d'une HttpWebResponse. Plus précisement, mon programme semble attendre, attendre sans fin cette r&#2 HTTPWebRequest et credential [ par dufoli ] Je voudrai recréer cet en-tête et ce qui me pose problème c'est : "Autorization"J'utilise HttpWebRequest, mais malgré avoir rempli POST {content : encoded} httpwebrequest [ par c0nsur ] Bonjour,jaimerais savoir comment POSTER aec httpwebrequest à une page .PHP en fait, je sais comment poster les données.... mais jai un pro HttpWebRequest [ par missceline33 ] Bonjour je cherche à utiliser le protocole HTTP en C#. J'ai tropuvé un post avec deux fonctions public void EnvoyerMessage(string msg, strin Remplir un formulaire sur un site web [ par cispo ] Bonsoir, Je dois automatiser la validation d'un formulaire web afin de m'identifier (login et mot de passe) pour ensuite pouvoir télécharger un fichi HttpWebRequest & Cookie [ par Bidou ] Bonjour,Je dois fair quelque chose de très simple, mais je sèche, faut dire que la doc n'est que très peu bavarde à ce sujet : Je dois me connecter su


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,499 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.