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

API, COM et SDKs Delphi Discussion :

RestRequest en Memo.Text


Sujet :

API, COM et SDKs Delphi

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 34
    Points : 33
    Points
    33
    Par défaut RestRequest en Memo.Text
    Bonjour à tous,

    J'ai un souci avec RestRequest ca doit être tout bête mais pas moyen de trouver.

    Je fais un première requête du type:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
      RESTClient1.BaseURL := 'https://api.eu1.adobesign.com/api/rest/v6/transientDocuments';
      RESTRequest1.Params.AddItem('File', 'D:\1.pdf', pkFILE, [poDoNotEncode]);
      RESTRequest1.Execute;
      jValue:=RESTResponse1.JSONValue;
      MemoContent.Text:= jValue.ToString;
    Dans mon mémo j'ai bien le résultat qui apparait, du type : {"transientDocumentId":"XXXXXdsvqsdvqsv"}

    Je fais ensuite une autre requête:

    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
     
      RESTClient1.BaseURL := 'https://eu1.adobesign.com:443/api/rest/v6/agreements';
      RESTRequest1.AddParameter('Content-Type', 'application/json', TRESTRequestParameterKind.pkHTTPHEADER, [poDoNotEncode]);
      RESTRequest1.Method := TRESTRequestMethod.rmPOST;
      RESTRequest1.AddBody(
           '{'+
      '"fileInfos": ['+
      MemoContent.Text+
      '],'+
      '"name": "Vente",'+
      '"participantSetsInfo": ['+
      '  {'+
      '    "order": 1,'+
      '    "role": "SIGNER",'+
      '    "memberInfos": ['+
      '      {'+
      '        "email": "mail@mail.com"'+
      '      }'+
      '    ]'+
      '  }'+
      '],'+
      '"signatureType": "ESIGN",'+
      '"state": "IN_PROCESS"'+
      '}', TRESTContentType.ctAPPLICATION_JSON);
      RESTRequest1.Execute;
      jValue:=RESTResponse1.JSONValue;
      MemoContent.Text:= jValue.ToString
    et j'obtiens : {"code":"INVALID_JSON","message":"An invalid JSON was specified"}

    j'ai alors ajouté un Memo1 pour récupérer le texte puis:

    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
      Memo1.Clear;
      Memo1.text:= '{'+
      '"fileInfos": [';
      Memo1.Lines.Add(MemoContent.Text);
      Memo1.Lines.Add('],'+
      '"name": "Vente",'+
      '"participantSetsInfo": ['+
      '  {'+
      '    "order": 1,'+
      '    "role": "SIGNER",'+
      '    "memberInfos": ['+
      '      {'+
      '        "email": "mail@mail.com"'+
      '      }'+
      '    ]'+
      '  }'+
      '],'+
      '"signatureType": "ESIGN",'+
      '"state": "IN_PROCESS"'+
      '}');
    Message d'erreur identique. Pourtant si je fais copier coller du Memo1 ou si j'ajoute {"transientDocumentId":"XXXXXdsvqsdvqsv"} directement dans mon code (à la place de MemoContent.text) cela fonctionne. Une idée d'où cela peut venir?

    Merci

  2. #2
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 447
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 447
    Points : 24 849
    Points
    24 849
    Par défaut
    un TJSONObject pour générer un JSON correctement echappé\encodé serait préférable.
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

Discussions similaires

  1. [WD23] Clé composée avec memo texte
    Par Robert le débutant dans le forum WinDev
    Réponses: 2
    Dernier message: 06/10/2021, 18h18
  2. [AC-2007] Mise en forme d'un champ Memo (texte enrichi)
    Par nde1303 dans le forum IHM
    Réponses: 3
    Dernier message: 23/08/2013, 13h45
  3. Remplacer le composant MEMO (texte plain) par RichEdit
    Par jusaso dans le forum Composants VCL
    Réponses: 14
    Dernier message: 23/07/2010, 17h09
  4. [AC-2007] champ memo texte trop long
    Par mapoupou dans le forum IHM
    Réponses: 1
    Dernier message: 19/10/2009, 21h49
  5. Réponses: 2
    Dernier message: 08/11/2006, 18h13

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