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

Lazarus Pascal Discussion :

Envisager Lazarus pour une ancienne application sous Delphi7


Sujet :

Lazarus Pascal

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 57
    Points : 59
    Points
    59
    Par défaut Envisager Lazarus pour une ancienne application sous Delphi7
    Bonjour

    j'ai une ancienne application sous Delphi7 que j'utilise pour des traitements automatiques...
    Elle permet simplement de faire des requêtes http en transmettant éventuellement des fichiers au format texte.
    Elle est construite en Delphi7 avec des composants Indy de la version 10.0.76.

    Le hic que je rencontre c'est qu'on me demande de faire en sorte que cela fonctionne en https et je me heurte aux problèmes de librairies ssleay32.dll ou libeay32.dll.

    Aussi, je me demande si Lazarus ne serait pas la solution pour réaliser cela.

    Merci d'avance pour vos retours

    Bonne continuation

  2. #2
    Expert éminent
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    3 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 3 951
    Points : 9 280
    Points
    9 280
    Par défaut
    hello,
    quels genres de protocole réseau utilises-tu ?
    pour lazarus il y a en standard comme bibliothèque fcl-net et en bibliothèques tierces possibles : lnet, synapse, indy.
    peux-tu nous montrer un bout de code où tu as des problèmes avec indy ?
    Ami calmant, J?P
    Jurassic computer : Sinclair ZX81 - Zilog Z80A à 3,25 MHz - RAM 1 Ko - ROM 8 Ko

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 57
    Points : 59
    Points
    59
    Par défaut
    Bonjour

    c'est une application développée avec Delphi7 qui n'utilise que le composant TIdHttp pour faire des requêtes de type get ou post quand il s'agit de transmettre des fichiers...
    ça marche depuis 12 ou 15 ans, mais toujours en échangeant vers des sites sans ssl

    j'ai bien ajouté un composant TIdSSLIOHandlerSocket, mais dès l'instruction get ou post j'obtiens une erreur de chargement de la bibliothèque SSL

    et donc ce qui amène ma question : est ce envisageable avec Lazarus

    Merci d'avance

  4. #4
    Expert éminent
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    3 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 3 951
    Points : 9 280
    Points
    9 280
    Par défaut
    Voici un exemple d'une requête Get et d'une requête Post vers un serveur https en utilisant la classe TFPHTTPClient de free pascal

    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
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
     
    { TForm1 }
     
    uses fphttpclient, opensslsockets;
     
    function ReadURL(AUrl: String): String;
    begin
      with TFPHTTPClient.Create(nil) do
      try
        Result := Get(AURL);
      finally
        Free;
      end;
    end;
     
     
    procedure TForm1.Bt_GetClick(Sender: TObject);
    begin
      Memo1.Text := ReadURL('https://reqbin.com/echo');
    end;
     
     
    procedure TForm1.Bt_PostClick(Sender: TObject);
    var
        Client: TFPHttpClient;
        Response : TStringStream;
        Params : string = '{"login":"my_login","password":"my_password"}';
    begin
        Client := TFPHttpClient.Create(nil);
        Client.AddHeader('User-Agent','Mozilla/5.0 (compatible; fpweb)');
        Client.AddHeader('Content-Type','application/json; charset=UTF-8');
        Client.AddHeader('Accept', 'application/json');
        Client.AllowRedirect := true;
        client.RequestBody := TRawByteStringStream.Create(Params);
        Response := TStringStream.Create('');
        try
            try
                client.Post('https://reqbin.com/echo/post/json', Response);
                Memo1.Text := 'Response Code of Post Request is ' + inttostr(Client.ResponseStatusCode);   // better be 200
            except on E:Exception do
                    Memo1.Text := 'Something bad happened in Post Request : ' + E.Message;
            end;
        finally
            Client.RequestBody.Free;
            Client.Free;
            Response.Free;
        end;
     
     
     
     
    end;
    Ce code fonctionne sous windows 10 Lazarus 2.0.10 fpc 3.2 .
    A partir de fpc 3.2 l'unité opensslsockets simplifie l'utilisation du ssl.

    Ami calmant, J.P
    Jurassic computer : Sinclair ZX81 - Zilog Z80A à 3,25 MHz - RAM 1 Ko - ROM 8 Ko

  5. #5
    Expert éminent
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    3 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 3 951
    Points : 9 280
    Points
    9 280
    Par défaut
    hello,
    pour le post un test plus complet avec un autre serveur de test :

    exemple :
    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
    procedure TForm1.Bt_PostClick(Sender: TObject);
    var
     
        Client: TFPHttpClient;
        Response : TStringStream;
        Params : string = '{"title": "titre","body": "corps","userId": 1}';
    begin
        Client := TFPHttpClient.Create(nil);
        Client.AddHeader('User-Agent','Mozilla/5.0 (compatible; fpweb)');
        Client.AddHeader('Content-Type','application/json; charset=UTF-8');
        Client.AddHeader('Accept', 'application/json');
        Client.AllowRedirect := true;
        client.RequestBody := TRawByteStringStream.Create(Params);
        Response := TStringStream.Create('');
        Memo1.Clear;
        try
            try
                client.Post('https://jsonplaceholder.typicode.com/posts', Response);
                Memo1.Append('Response Code of Post Request is ' +
                inttostr(Client.ResponseStatusCode));
                Memo1.Append('Réponse : ' + Response.DataString);
            except on E:Exception do
                    Memo1.Text := 'Something bad happened in Post Request : ' + E.Message;
            end;
        finally
            Client.RequestBody.Free;
            Client.Free;
            Response.Free;
        end;
     
     
     
     
    end;
    Résultat :
    Response Code of Post Request is 201
    Réponse : {
    "title": "titre",
    "body": "corps",
    "userId": 1,
    "id": 101
    }
    Ami calmant, J.P
    Jurassic computer : Sinclair ZX81 - Zilog Z80A à 3,25 MHz - RAM 1 Ko - ROM 8 Ko

Discussions similaires

  1. Réponses: 0
    Dernier message: 10/02/2012, 14h37
  2. Réponses: 1
    Dernier message: 05/11/2009, 09h08
  3. Peut on acceder à une image d'une autre application sous windows?
    Par pointer dans le forum API, COM et SDKs
    Réponses: 1
    Dernier message: 19/04/2006, 12h17
  4. Réponses: 3
    Dernier message: 11/12/2005, 16h08
  5. Réponses: 6
    Dernier message: 09/12/2005, 15h48

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