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