il codice .....
// Prima connessione richiesta TOKEN
RESTRequest1.Params.Clear;
RESTRequest1.AddParameter('grant_type', 'client_credentials', pkGETorPOST);
RESTRequest1.AddParameter('consumer_key','xxxxxxxxxxx', pkGETorPOST);
RESTRequest1.AddParameter('consumer_secret','xxxxx', pkGETorPOST);
RESTClient1.BaseURL := '
https://api.xxxxxx.com/';
// Richiesta
RESTRequest1.Method := rmPOST;
RESTRequest1.Resource := '/auth/token';
RESTRequest1.Execute;
// Estrai
jValue := RESTResponse1.JSONValue;
edToken.Text := jValue.GetValue<string>('access_token');
// Imposta TOKEN su REST Client e OAuth2
OAuth2Authenticator1.AccessTokenParamName := 'access_token';
OAuth2Authenticator1.AccessToken := edToken.Text;
OAuth2Authenticator1.TokenType := TOAuth2TokenType.ttBEARER;
RESTClient1.Authenticator := OAuth2Authenticator1;
// Richiedo pdf
RESTRequest1.Params.Clear;
OAuth2Authenticator1.AccessTokenParamName := 'attachment_token';
// 'access_token';
OAuth2Authenticator1.AccessToken := edTmpToken.Text;
RESTRequest1.Method := rmGET;
RESTRequest1.Resource := '/attachments/' + edTmpId.Text; // id Entity
RESTClient1.ContentType := 'ctAPPLICATION_PDF';
RESTRequest1.Client.FallbackCharsetEncoding := 'raw';
RESTRequest1.Accept := 'application/pdf';
\\RESTRequest1.AcceptCharset := 'UTF-8';
try
RESTRequest1.Execute;
finally
nSize := length( RESTResponse1.RawBytes ); // nSize := length(RESTRequest1.Response.RawBytes);
if nSize > 0 then begin
TFile.WriteAllBytes( EarLogFileName('pdf'), RESTResponse1.RawBytes);
meLog.Lines.Append(EarBytesToStr(nSize) + ' download');
end
else meLog.Lines.Append('Zero Bytes download');
end;
La risposta dell'azienda del server:
abbiamo verificato la chiamata per lo scarico del PDF, a noi non risulta che venga indicato il Charset=UTF-8, è possibile che venga inserito dal vostro applicativo?
In ogni caso, il file che viene inviato è un PDF in binario , qui di seguito potete trovare l’header della risposta di una richiesta di scarico PDF:
...riporto a mano le info di interesse..:
Content-Type : application/pdf
Content-Length : 101556
Content-Disposition : attachment;filename="asas.pdf"
Content-Encoding : gzip
Vary : Origin