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 :

Rester connecté, Requêtes HTTP


Sujet :

C#

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2017
    Messages : 3
    Par défaut Rester connecté, Requêtes HTTP
    Bonjour ou bonsoir,

    Alors je cherche à envoyer des requêtes POST après connexion. J'ai bien réussi à me connecter sur le site via :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
    public static void connexion()
            {
                //connexion
                var request = (HttpWebRequest)WebRequest.Create("https://site.com/ajax.php");
     
     
                var postData = "request=login&do_login=1&login=pseudo&password=motdepasse&stay_connected=1";
                var data = Encoding.ASCII.GetBytes(postData);
     
                request.Method = "POST";
                request.ContentType = "application/x-www-form-urlencoded";
                request.ContentLength = data.Length;
                request.KeepAlive = true;        
     
                using (var stream = request.GetRequestStream())
                {
                    stream.Write(data, 0, data.Length);
                }
     
                var response = (HttpWebResponse)request.GetResponse();
                var responseString = new StreamReader(response.GetResponseStream()).ReadToEnd();
                Console.WriteLine("CONNEXION : "+responseString);
            }
    Alors cette fonction est fausse, c'est simplement pour imager.

    mais le soucis c'est lorsque je veux balancer une autre requête POST cela m'affiche que je ne suis plus connecté sur le site.

    Je suis débutant dans les requêtes HTTP et je suis preneur de bons conseils.

    Merci beaucoup d'avance.

  2. #2
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2017
    Messages : 3
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
     
    using System;
    using System.Text;
    using System.IO;
    using System.Net;
    using static System.Net.WebRequestMethods;
    using System.Collections.Specialized;
     
     
    public static class Http
        {
            public static byte[] Post(string uri, NameValueCollection pairs)
            {
                byte[] response = null;
                using (WebClient client = new WebClient())
                {
                    response = client.UploadValues(uri, pairs);
                }
                return response;
            }
        }
     
    class Program
    {
          static void Main(string[] args)
          {
                connexion("login", "password");
          }      
          public static void connexion(String login, String password)
          {
                var connexion = Http.Post("https://site.com/ajax.php", new NameValueCollection() {
                    { "request", "login" },
                    { "do_login", "1" },
                    { "login", login },
                    { "password", password }
                });
     
                Console.WriteLine(resultConnexion);
          }
    }
    J'ai finalement refait une fonction plus simple, mais le problème persiste, la deuxième requête me donne toujours le message d'erreur venant du site me disant que je ne suis pas connecté, en sachant bien sûr que celle-ci ne peut être envoyé qui si je suis connecté au site.


    EDIT : Si j'ai bien compris, cela viendrai du fait que la connexion n'est pas persistante. Je ne comprend pas trop comment je peux la rendre persistante avec cette méthode, avec la méthode précédente je n'y était pas arrivé.

  3. #3
    Membre Expert
    Homme Profil pro
    edi
    Inscrit en
    Juin 2007
    Messages
    941
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : edi

    Informations forums :
    Inscription : Juin 2007
    Messages : 941
    Par défaut
    Lorsque tu utilises une WebRequest il y aura une seule connexion http puis celle-ci fermera. Ça reste valide pour s'authentifier, mais il te faut dans ce cas récupérer le cookie de session et le réutiliser dans les requêtes suivante ; c'est ce qui te pose problème, la connexion http se passe bien mais comme tu ne renvois pas le cookie de session au serveur il ne te reconnait pas. Si tu as besoin de faire plusieurs requêtes sur un serveur je te conseille d'utiliser plutôt la classe HttpClient, qui gardera en cache un certain nombre d'informations et te permettra d'envoyer plusieurs requêtes.

Discussions similaires

  1. Parser une requête HTTP/GET en c ! regex ?
    Par canard75 dans le forum C
    Réponses: 14
    Dernier message: 06/12/2005, 10h08
  2. [Struts] Ecouter des requêtes HTTP
    Par ledruide dans le forum Struts 1
    Réponses: 16
    Dernier message: 01/12/2005, 11h53
  3. Intercepter les requêtes HTTP et les modifier.
    Par Alexandre T dans le forum Général Conception Web
    Réponses: 3
    Dernier message: 21/09/2005, 19h25
  4. Requête HTTP
    Par hogan dans le forum Entrée/Sortie
    Réponses: 1
    Dernier message: 15/07/2005, 18h44
  5. [HTTP]Créer une requête http multipart/related
    Par jothi35 dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 05/04/2005, 15h32

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