begin process at 2008 08 08 21:45:10
1 223 607 membres
365 nouveaux aujourd'hui
14 230 membres club

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 : 15 075

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

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (6)
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...
  • 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

Ajouter un commentaire

Pub



Appels d'offres

CalendriCode

Août 2008
LMMJVSD
    123
45678910
11121314151617
18192021222324
25262728293031

VS Express FR Gratuit !

VS Express en français et 100% gratuit !

Boutique

Boutique de goodies CodeS-SourceS