IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

[webclient] envoi data method POST et redirection


Sujet :

C#

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2006
    Messages : 14
    Par défaut [webclient] envoi data method POST et redirection
    Bonsoir tout le monde, j'ai encore besoin de vos précieux conseils. Alors plantons le décor :
    j'ai un formulaire PHP avec 2 input (user/pwd) et un bouton valider, qui renvoi si le login est correct vers une autre page du type http://.../mapage?ID=3A45FF...
    Je tente de faire un programme se connectant directement au formulaire, envoyant le couple user/pwd, afin de récupérer deux ou 3 variables sur la page http://.../mapage?ID=3A45FF...
    Voila (en substance) ce que j'ai commencé à coder :

    WebClient wc = new WebClient();
    NameValueCollection nvc = new NameValueCollection();
    string webtext = wc.DownloadString("https://website/login");
    nvc.Add("username", usermane);
    nvc.Add("password", password);
    byte[] response = wc.UploadValues("http://website/login.php", "POST", nvc);
    MessageBox.Show(Encoding.GetEncoding("iso-8859-15").GetString(response));
    WebHeaderCollection whc = wc.ResponseHeaders;
    for (i = 0; i < whc.Count; i++)
    {
    MessageBox.Show(whc.GetKey(i) + " = " + whc.Get(i));
    }

    Mon problème, c'est qu'avec ça je n'arrive pas a me connecter à la fameuse page http://.../mapage?ID=3A45FF..., je n'arrive pas a récupérer ni l'url, ni l'ID, en gros rien, la réponse à la requete est le script HTML du formulaire, ni plus ni moins. J'ai donc besoin de l'aide de bon développeurs qui pourraient me dire comment gérer la "redirection". Merci à vous.

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2006
    Messages : 14
    Par défaut
    J'avance un peu, mais ça plante toujours...
    /*
    Voila le pb. Si j'utilise ce code C# pour remplire un formulaire php du type <?php if(PassOK) header("location: http://secure.website/page?id=234F21A"); exit(); ?> j'arrive a récupérer la nouvelle url dans le header.
    Malheureusement, si j'utilise ce code pour remplire un formulaire inconnu type CAS (http://www.ja-sig.org/products/cas/), vodafone (http://www.vodafone.ie/) ou autre, je n'arrive pas a récupérer le précieux ID, ou la redirection.
    */


    try
    {
    HttpWebRequest req = (HttpWebRequest)WebRequest.Create("https://website/cas/login");
    req.Method = "POST";
    req.UserAgent = "Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US; rv:1.8.1.4) Gecko/20070515 Firefox/2.0.0.6";
    req.Accept = "*/*";
    req.AllowAutoRedirect = false;
    req.CookieContainer = cookies;
    string data = "service=http://secure.website/&username=momo&password=Z#e4y65FF&lt=352C67AA-0E34-7D76-18FF-CA40C8D41CB3&warn=false&_currentStateId=viewLoginForm&_eventId=submit";
    ASCIIEncoding encodedData = new ASCIIEncoding();
    byte[] byteArray = encodedData.GetBytes(data);
    req.ContentType = "application/x-www-form-urlencoded";
    req.ContentLength = byteArray.Length;
    Stream newStream = req.GetRequestStream();
    newStream.Write(byteArray, 0, byteArray.Length);
    newStream.Close();
    HttpWebResponse res = (HttpWebResponse)req.GetResponse();
    cookies.Add(res.Cookies);
    req.CookieContainer = cookies;
    Reponse = "---------------------------------------------------\r\n";
    Reponse += req.Method + " " + "URL" + "\r\n";
    Reponse += res.StatusCode + " - " + res.StatusDescription + "\r\n";
    Reponse += res.Headers.ToString() + "\r\n";
    switch (res.StatusCode)
    {
    case HttpStatusCode.Redirect:
    newURL = res.Headers.Get("Location");
    break;
    case HttpStatusCode.RedirectKeepVerb:
    newURL = res.Headers.Get("Location");
    break;
    case HttpStatusCode.RedirectMethod:
    newURL = res.Headers.Get("Location");
    break;
    default:
    Stream resin = res.GetResponseStream();
    StreamReader rea = new StreamReader(resin, Encoding.GetEncoding(850));
    Reponse += rea.ReadToEnd().Replace("\r\n", "\n").Replace("\n", "\r\n");
    rea.Close();
    resin.Close();
    break;
    }
    res.Close();
    }
    catch (Exception ex)
    {
    Reponse += ex.ToString();
    }
    richTextBox1.Text = Reponse;

Discussions similaires

  1. simulation d'envoi de methode post
    Par darkontes dans le forum Langage
    Réponses: 5
    Dernier message: 11/06/2013, 09h31
  2. [PayPal] Redirection HTTP sur serveur de paiement via method POST
    Par aphax dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 6
    Dernier message: 06/08/2009, 10h42
  3. [D7][W32] Probleme envoi par methode post
    Par hepha1970 dans le forum Web & réseau
    Réponses: 3
    Dernier message: 27/03/2009, 16h23
  4. envoi de données methode POST
    Par oceanbigone dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 23/02/2007, 18h43
  5. Envoi incomplet avec methode post
    Par Tr@nkill dans le forum ASP
    Réponses: 8
    Dernier message: 16/05/2005, 12h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo