Ciao a tutti,
Uso il componente TIdHttp che ha come IOHandler il TIdSSLIOHandlerSocketOpenSSL.
Per prima cosa mi autentico, poi faccio il POST passando il file e alcuni parametri essenziali che mi distinguono il file (titolo, descrizione, soggetto, entity).
Quando faccio il POST mi esce l'errore Connection closed gracefully e non so proprio da cosa possa dipendere.
La pagina che sto contattando riceve solo tramite metodo POST.
Mi sapete aiutare??
Questo è il codice.
codice:
procedure TfrmArchivio_doc.tbUploadDocClick(Sender: TObject);
var
Dati : TIdMultiPartFormDataStream;
Address : string;
PostResult : TStringStream;
AuthToken : string;
IdEntity : string;
DocType : string;
str : String;
ParentNode, Node : IXMLNode;
i : integer;
begin
inherited;
PostResult := TStringStream.Create('');
Dati := TIdMultiPartFormDataStream.Create;
IdHttp1.Request.BasicAuthentication := True;
IdHttp1.Request.Username := 'user';
IdHttp1.Request.Password := 'password';
IdHttp1.Request.ContentType := 'multipart/form-data';
AuthToken := 'mvbCanaYQyGeeBpyjxyg';
IdEntity := '461';
Address := 'https://www.sitoweb.it/api/v1/document.json';
DocType := 'DT:00320';
Dati.Position := 0;
Dati.AddFormField('entity_id', IdEntity);
Dati.AddFormField('document[document_type_dc_identifier]',DocType);
Dati.AddFile('document[data]','C:\Scheda_anagrafica.pdf',GetMIMETypeFromFile('C:\Scheda_anagrafica.pdf'));
Dati.AddFormField('document[dc_subject]','Soggetto');
Dati.AddFormField('document[dc_title]','Scheda Anagrafica');
Dati.AddFormField('document[dc_description]','La scheda anagrafica');
Dati.AddFormField('document[is_private]','FALSE');
IdHttp1.Post(Address,Dati,PostResult);
end;