Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1610 connectés 

  FORUM HardWare.fr
  Programmation
  C#/.NET managed

  récupérer un cookie

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

récupérer un cookie

n°1999462
lonzo13
vous êtes tous des malades
Posté le 07-06-2010 à 10:25:45  profilanswer
 

Bonjour à tous, c'est la premiére fois que je post dans la section programmation de hardware.fr, j'éspère qu'il y a autant d'activité que sur le reste du forum :).
Voila mon problème, je suis en stage et je n'ai plus beaucoup de temps, j'essaie de faire un programme qui rempli plein de formulaire,  bref...
Mon programme bloque lorsque que je récupère la reponse du serveur à ma requête.
Je récupère cette réponse uniquement pour récupérer le cookie et non pas pour parser une page, donc si quelqu'un a une autre solution pour récupérer un cookie je suis prenneur :).
voila mon code complet :
 
using System;
 
using System.Net;
 
using System.IO;
 
using System.Threading;
 
 
namespace ProjetRes2010
{
 
 class MainClass
 
{
  public static void Main (string[] args)
   
 {
   string Url = "http://www.unepage.fr/";
 
   string UrlLogin = Url +"pmb/main.php";
 
   //string login = "blabla";
   
   //string mdp = "blabla";
 
   CookieCollection MonCookie = null;
 
//On se connecte
 HttpWebRequest myReq = (HttpWebRequest)WebRequest.Create(UrlLogin);
 
   myReq.Credentials = CredentialCache.DefaultCredentials;
 
   myReq.CookieContainer = new CookieContainer();
 
   myReq.Method = "POST";
   
   myReq.ContentType="application/x-www-form-urlencoded";
 
   string chaine = "user=admin&password=media&database=bibli";
 
   myReq.ContentLength = chaine.Length+1;
   
   Stream envoi = myReq.GetRequestStream();
 
   StreamWriter SW = new StreamWriter(envoi);
 
   Console.WriteLine ("test" );
   SW.WriteLine(chaine);
   
   //SW.Close();
 
 //on lit la reponse liee a la connexion
   Console.WriteLine ("test2" );
     
   HttpWebResponse response = (HttpWebResponse) myReq.GetResponse();
   
   Console.WriteLine ("test3" );
 
   Stream streamResponse = response.GetResponseStream();
 
   StreamReader SR = new StreamReader(streamResponse);
 
   Console.WriteLine(SR.ReadToEnd());
 
   //SR.Close();
 
   MonCookie = response.Cookies;//C'EST SA QUE JE VEUX FAIRE!!!^^
 
   Console.WriteLine("--------------------------------------------------------------------" );
}
}
}
Le programme bloque juste aprés le test 2.( le test 3 ne se fait pas).
HttpWebResponse response = (HttpWebResponse) myReq.GetResponse();
 
Volontairement les Url ne sont pas les bonnes....  
 
Merci d'avance à tous ceux qui prèterons de l'attention à mon post.

mood
Publicité
Posté le 07-06-2010 à 10:25:45  profilanswer
 

n°1999494
TotalRecal​l
Posté le 07-06-2010 à 11:14:04  profilanswer
 

Si ton problème apparait au moment de contacter ton url distante je ne vois pas ce qu'on peut faire pour toi...
- A mon avis ton "blocage" peut être lié à une indispo du site, tu n'as qu'à laisser au login le temps de se faire et utiliser le code retour (404, etc).
- Au lieu d'utiliser des Console.Writeline, execute en debug et pose des points d'arrêt aux moments clés.
- Une fois que tu seras arrivé là, ton utilisation de la propriété Cookies parait assez louche, tu as un exemple ici : http://blogs.microsoft.co.il/blogs [...] ainer.aspx si ça peut aider.

 

A part ça et hormis que ton code est assez moche à lire (pas du tout structuré), les principes sont là. Pour la prochaine fois merci d'utiliser la balise code du forum pour la lisibilité.


Message édité par TotalRecall le 07-06-2010 à 11:14:38

---------------
Réalisation amplis classe D / T      Topic .Net - C# @ Prog
n°1999497
lonzo13
vous êtes tous des malades
Posté le 07-06-2010 à 11:19:40  profilanswer
 

Merci à toi, oui excuse moi pour la présentation je m'en suis aperçu lorsque j'ai envoyé.
Je reviens vers 1h30, jtest ce que tu m'a fillé, par contre pas trés bien compris ton utilisation du code 404.
Pour t'aider peut être, je cherche vraiment juste a récupéré le cookie,
j'ai essayé avec httpfox de le recupérer manuellemnt mais le constructeur ne prend que du Int32
ou un cookie bien sur.
Dans http fox voila ce que je peux récupérer :  
PhpMyBibli-LOGIN=admin&PhpMyBibli-SESSNAME=PhpMyBibli&PhpMyBibli-SESSID=1164845689&PhpMyBibli-DATABASE=bibli&PHPSESSID=2040f422c674390b0b2a949adea4de96
 
Je ne sais pas si je peux créer un cookiecontainer avec.
Merci pour ton attention.

n°1999559
lonzo13
vous êtes tous des malades
Posté le 07-06-2010 à 14:07:39  profilanswer
 

Merci pour vos réponses, je n'ai pas trouvé comment mettre son code proprement dsl.
Donc j'ai trouvé la solution je la post si d'autre personne en auraient besoin :  
 
public void Start()
{
    HttpWebRequest myReq = (HttpWebRequest)WebRequest.Create(SITE + PAGE_LOGIN);
    myReq.ContentType = "application/x-www-form-urlencoded";
    myReq.Method = "POST";  
    myReq.Timeout = TIMEOUT;
 
    myReq.CookieContainer = new CookieContainer();
     
    byte[] myByte = Encoding.ASCII.GetBytes(_ParamsLogin);
    myReq.ContentLength = myByte.Length;
 
    try
    {
        Stream myStream = myReq.GetRequestStream();
        myStream.Write (myByte, 0, myByte.Length);
        myStream.Close ();
        HttpWebResponse response = (HttpWebResponse) myReq.GetResponse();
        myCookie = response.Cookies;
         
         response.Close();
    }
    catch(Exception e)
    {
    Console.WriteLine(e);
    }
}
 
Voila!
Bon bien sur on met tous sa dans une petite classe
qu'on apellera dans le main, et on oublie pas de créer le cookie avant : _myCookie = new CookieCollection();
et _ParamsLogin est le string des information de login mot de pass.
Voila et merci tout de même, toujours du supe boulot sur ce fofo.

n°1999560
lonzo13
vous êtes tous des malades
Posté le 07-06-2010 à 14:08:05  profilanswer
 

Ha ba sa va la mise en forme finalement^^


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C#/.NET managed

  récupérer un cookie

 

Sujets relatifs
[Flash]recuperer la selection d'une comboboxRécupérer le pacman de Google
[Batch - Débutante] Récupérer l'IP après le ping d'une machineRécupérer une variable deux pages après
Récupérer lien de page html avec phpRecuperer des infos dans un cookie en local
Récupérer la date d'expiration d'un cookie?Impossible de recuperer la valeur de mon cookie.
recuperer un cookie[ASP] Comment récupérer la valeur du cookie de session ?
Plus de sujets relatifs à : récupérer un cookie


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR