Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it L'avatar di Ely88M
    Registrato dal
    Oct 2007
    Messaggi
    281

    [Delphi] Upload di un file - Errore Connection closed gracefully

    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;

  2. #2
    Utente di HTML.it L'avatar di Ely88M
    Registrato dal
    Oct 2007
    Messaggi
    281
    Potete chiuderla che cambio domanda!

  3. #3
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,296
    Quote Originariamente inviata da Ely88M Visualizza il messaggio
    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!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  4. #4
    Utente di HTML.it L'avatar di Ely88M
    Registrato dal
    Oct 2007
    Messaggi
    281
    Hai ragione..
    il codice non faceva l'upload del file in quanto mancava un parametro obbligatorio. (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..

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

    Grazie
    ciao

  5. #5
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,296
    Quote Originariamente inviata da Ely88M Visualizza il messaggio
    Invece l'errore di connection closed gracefully, me lo da ancora qualche volta.. non ho capito da cosa possa dipendere..
    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.

    Quote Originariamente inviata da Ely88M Visualizza il messaggio
    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!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.