PDA

Visualizza la versione completa : [Delphi] Upload di un file - Errore Connection closed gracefully


Ely88M
20-02-2015, 17:46
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.


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;

Ely88M
25-02-2015, 10:18
Potete chiuderla che cambio domanda! :)

alka
02-03-2015, 19:49
Potete chiuderla che cambio domanda! :)

Forse era meglio continuare qui, o comunque - per chiudere questa domanda degnamente - spiegare qual la risoluzione del problema (se il problema stato risolto, s'intende).

Ciao! :ciauz:

Ely88M
05-03-2015, 15:08
Hai ragione..
il codice non faceva l'upload del file in quanto mancava un parametro obbligatorio. :dh: (dopo vari tentativi l'ho capito grazie allo sviluppatore del sito che mi ha detto l'errore che restituiva nei log.
Invece l'errore di connection closed gracefully, me lo da ancora qualche volta.. non ho capito da cosa possa dipendere.. :bh:

A proposito, gi che siamo qui... sai il modo di vedere\salvare un log durante questi tipi di operazioni?

Grazie
ciao

alka
09-03-2015, 12:03
Invece l'errore di connection closed gracefully, me lo da ancora qualche volta.. non ho capito da cosa possa dipendere.. :bh:

Questa eccezione non un vero e proprio "errore" (come non lo sono sempre le eccezioni, altrimenti si chiamerebbero errori e basta). ;)

Si verifica in genere quando il server chiude la connessione prima che il client ne faccia esplicita richiesta, e consente di notificare questa condizione al programma, sebbene di norma non sia un problema, perch magari il colloquio gi terminato e le operazioni sono state completate.



A proposito, gi che siamo qui... sai il modo di vedere\salvare un log durante questi tipi di operazioni?

Puoi sempre creare una tua classe in cui codificare la scrittura su disco, nella locazione che preferisci, delle informazioni che intendi conservare.

Ciao! :ciauz:

Loading