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++Builder Discussion :

TIdHTTPServer et Cookies


Sujet :

C++Builder

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif Avatar de Argol_Medusa
    Homme Profil pro
    Ingénieur Radiofréquences
    Inscrit en
    Août 2005
    Messages
    208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Radiofréquences
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2005
    Messages : 208
    Par défaut TIdHTTPServer et Cookies
    Bonjour,

    je travaille actuellement sur le Builder 2010 où il y a une librairie Indy bien pratique, TIdHTTPServer, permettant de créer son propre serveur web ( on remplace apache en gros, et on est 6 fois plus rapide que du PHP ).

    J'arrive à renvoyer une page web, utiliser une méthode GET, mais par contre pour les cookies, autant les récupérer ne me pose pas de problème, autant je n'arrive pas à en écrire dans le navigateur web ( client distant du serveur ).

    En regardant les fonctions disponibles, il n'y en a qu'une à priori (corrigez-moi si je me trompe ) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    RequestInfo->Cookies->AddCookie(TIdCookieRFC2109 *)
    Pas de problème, déclarons un TIdCookieRFC2109 :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    TIdCookieRFC2109 *a;
    a = new TIdCookieRFC2109;
    Et vlan :
    [BCC32 Erreur] Unit1.cpp(69): E2285 Impossible de trouver une correspondance pour 'TIdCookieRFC2109::TIdCookieRFC2109()'
    Contexte d'analyseur complet
    Unit1.cpp(43): analyse : void _fastcall TForm1::IdHTTPServer1CommandGet(TIdContext *,TIdHTTPRequestInfo *,TIdHTTPResponseInfo *)


    bon, je me dis qu'il faut aller voir comment la fonction a été codée ... j'y vais et là je commence à pleurer :

    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
    class DELPHICLASS TIdCookieRFC2109;
    class PASCALIMPLEMENTATION TIdCookieRFC2109 : public TIdNetscapeCookie
    {
    	typedef TIdNetscapeCookie inherited;
    	
    protected:
    	__int64 FMax_Age;
    	int FVersion;
    	System::UnicodeString FComment;
    	virtual System::UnicodeString __fastcall GetClientCookie(void);
    	virtual System::UnicodeString __fastcall GetCookie(void);
    	virtual void __fastcall SetExpires(const System::UnicodeString AValue);
    	virtual void __fastcall LoadProperties(Classes::TStrings* APropertyList);
    	
    public:
    	__fastcall virtual TIdCookieRFC2109(Classes::TCollection* ACollection);
    	__property System::UnicodeString Comment = {read=FComment, write=FComment};
    	__property __int64 MaxAge = {read=FMax_Age, write=FMax_Age};
    	__property int Version = {read=FVersion, write=FVersion, nodefault};
    public:
    	/* TIdNetscapeCookie.Destroy */ inline __fastcall virtual ~TIdCookieRFC2109(void) { }
    	
    };
    Est-ce que quelqu'un a déjà utilisé cette fonction ou voit comment faire pour utiliser cette fonction ?

    j'ai bien trouvé la doc Indy ( qui m'a conforté dans l'idée que c'était bien la bonne fonction )

    http://www.kumanov.com/docs/prog/indy/007391.html#0005


    par contre on est loin de la bonne vieille doc du borland builder C++ 6 avec l'exemple à copier coller ^^'

    Bref si quelqu'un a une idée ...

  2. #2
    Membre très actif Avatar de Argol_Medusa
    Homme Profil pro
    Ingénieur Radiofréquences
    Inscrit en
    Août 2005
    Messages
    208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Radiofréquences
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2005
    Messages : 208
    Par défaut
    Finalement j'ai réussi à utiliser la fonction mais par contre le résultat n'est pas là : le cookie n'est pas mit dans le navigateur.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    	/*! test : balancer un cookie dans le navigateur web ( client HTTP ) */
     
    	TIdCookieRFC2109 *a;
     
    	a = new TIdCookieRFC2109(NULL);
    	a->CookieName = "TestCookie,";
    	a->CookieText = "123456";
    	RequestInfo->Cookies->AddCookie(a);
    	delete a;
    Si quelqu'un a une idée je suis preneur :/

Discussions similaires

  1. Délai d'expiration des cookies
    Par Sylvain James dans le forum XMLRAD
    Réponses: 40
    Dernier message: 22/03/2006, 10h22
  2. Probleme d'éffacement dans le cookie
    Par Geulderack dans le forum XMLRAD
    Réponses: 6
    Dernier message: 02/04/2003, 14h17
  3. Les Cookies 4° ! : LA SOLUTION
    Par Ph. B. dans le forum XMLRAD
    Réponses: 2
    Dernier message: 31/01/2003, 16h46
  4. Les cookies 3° !!!
    Par Ph. B. dans le forum XMLRAD
    Réponses: 6
    Dernier message: 28/01/2003, 18h13
  5. [XMLRAD] Cookies pour login
    Par Sylvain Leray dans le forum XMLRAD
    Réponses: 9
    Dernier message: 23/12/2002, 17h47

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