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

 Delphi Discussion :

Requête Post via HTTP


Sujet :

Delphi

  1. #1
    Membre du Club
    Homme Profil pro
    Tutulaire d'un Master Academique en Réseaux et Systèmes repartis
    Inscrit en
    Juin 2011
    Messages
    227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Tutulaire d'un Master Academique en Réseaux et Systèmes repartis
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2011
    Messages : 227
    Points : 51
    Points
    51
    Par défaut Requête Post via HTTP
    Salut tous le monde, je suis entrain de réaliser une petite application qui post des données à travers une requête HTTP, j'ai fais le code suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    procedure TForm1.Button1Click(Sender: TObject);
    begin
    idhttp1.Request.CacheControl:='no-cache';
    idhttp1.Request.ContentType:='application/x-www-form-urlencoded';
    idhttp1.Request.UserAgent :='Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.96 Safari/537.36';
    idhttp1.Request.Accept:='text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8';
    idhttp1.Request.Referer:='https://tunisia.blsspainvisa.com/book_appointment.php';
    idhttp1.Request.AcceptEncoding:='gzip, deflate, br';
    idhttp1.Request.AcceptLanguage:='en-GB,en-US;q=0.9,en;q=0.8';
    idhttp1.AllowCookies := True;
    //idhttp1.CookieManager.AddCookies(IdCookieManager1.);
    memo2.Text:= idhttp1.Post('https://tunisia.blsspainvisa.com/book_appointment.php',memo1.lines)
    end;
    et dans Memo1 j'entre les données à poster mais ça ne retourne rien que la page book_appointment.php donc ou est le problème ? et pour le données que je post sont:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     --data 'app_type=Individual&member=2&centre=38%2338&category=Normal&phone_code=216&phone=792415263&email=aeazeaze%40gmail.com&otp=azeazeaze&countryID=&tokenvalue=ec1f850d934f440cfa8e4a18d2cf5463&save=Continue' --compressed

    Merci d'avance.

  2. #2
    Membre expert
    Avatar de pprem
    Homme Profil pro
    MVP Embarcadero - formateur&développeur Delphi, PHP et JS
    Inscrit en
    Juin 2013
    Messages
    1 876
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : MVP Embarcadero - formateur&développeur Delphi, PHP et JS
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 876
    Points : 3 611
    Points
    3 611
    Par défaut
    Bonjour

    Quelle version de Delphi utilises-tu ?

    Que reçois le programme PHP ? (mets var_dump($_POST) et var_dump($_GET) dedans pour récupérer quelque chose ou envoie toi le résultat par email)

  3. #3
    Membre confirmé Avatar de blonde
    Femme Profil pro
    Développeur Delphi
    Inscrit en
    Septembre 2003
    Messages
    278
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Delphi

    Informations forums :
    Inscription : Septembre 2003
    Messages : 278
    Points : 477
    Points
    477
    Par défaut
    Salut,

    tu utilises quelle version de Indy ?

    De mon côté, le prototypage du "Post" est celui-ci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    procedure Post(AURL: string; const ASourceFile: String; AResponseContent: TStream); overload;
    procedure Post(AURL: string; ASource: TStrings; AResponseContent: TStream; AByteEncoding: IIdTextEncoding = nil; ASrcEncoding: IIdTextEncoding = nil); overload;
    procedure Post(AURL: string; ASource, AResponseContent: TStream); overload;
    procedure Post(AURL: string; ASource: TIdMultiPartFormDataStream; AResponseContent: TStream); overload;
    Le retour du "post" se trouve donc chez moi en paramètre de la procédure, et pas en retour de fonction.

    As-tu essayé un utilitaire pour vérifier que tu passes les bons paramètres au php ? Moi j'utilise une extension chrome qui s'appelle ARC, mais il en existe d'autres.

  4. #4
    Membre du Club
    Homme Profil pro
    Tutulaire d'un Master Academique en Réseaux et Systèmes repartis
    Inscrit en
    Juin 2011
    Messages
    227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Tutulaire d'un Master Academique en Réseaux et Systèmes repartis
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2011
    Messages : 227
    Points : 51
    Points
    51
    Par défaut
    c'est bon j'ai réglé le problème, le problème était dans les data a poster j'ai posté les données encodé alors que dans les headers il doit les encoder pour les envoyer donc les data à envoyer sont:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    app_type=Individual
    member=
    centre=38#38
    category=Normal
    phone_code=216
    phone=770478908
    email=top@parcel4.net
    otp=9450
    countryID=
    tokenvalue=
    save=Continue
    Pour la version que j'utilise de Delphi c'est la version Delphi Rio 10.3 la dernière version. Ce que j'ai remarqué dans cette version on a pas besoin de rajouter les fichier dll de ssl avec l’exécutable ce qui est vraiment utile.

    Merci tous le monde

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Requête POST sur HTTPS
    Par zentaf dans le forum Réseau
    Réponses: 0
    Dernier message: 02/01/2014, 11h57
  2. Envoyer requete POST en C++ via HTTPS
    Par adalgo dans le forum Bibliothèques
    Réponses: 2
    Dernier message: 16/03/2007, 23h24
  3. [XML] Réponse à la requête POST VIA XML
    Par cilv1 dans le forum Bibliothèques et frameworks
    Réponses: 10
    Dernier message: 01/02/2006, 11h18
  4. Comment envoyer une requête POST via HTTP ?
    Par pdtor dans le forum C++
    Réponses: 2
    Dernier message: 13/09/2005, 05h54

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