CAR: Gestione errori durante download e upload di file
copia linkDescrizione
Se si utilizzavano i metodi DownloadFile o UploadFile della libreria Shell in modalità sincrona e l'operazione falliva, l'applicazione non notificava errori.
Per esempio se si scaricava un file tramite la funzione DownloadFile ed il file non esisteva sul server, non si ottenevano errori ed il file conteneva la pagina web di errore del server.
Inoltre se si utilizzava il metodo UploadFile per inviare un file ad un server che non era in grado di acquisirlo, l'applicazione non notificava errori.
Ora se le operazioni DownloadFile o UploadFile falliscono, generano un'eccezione se utilizzate in modalità sincrona.
Funzionalità interessate
L'utilizzo dei metodi DownloadFile e UploadFile in applicazioni eseguite dentro alla shell nativa.
Note
- Questo miglioramento è stato suggerito nel seguente thread del Forum.
- Il miglioramento riguarda solo le operazioni sincrone. Nel caso di operazioni asincrone, infatti, l'applicazione notificava già l'evento OnFileUploaded con il parametro Size uguale a -1 per segnalare il fatto che l'operazione non era stata eseguita correttamente.
-
Attenzione: durante l'implementazione del miglioramento sono state apportate alcune correzioni ai metodi DownloadFile e UploadFile. In particolare:
-
DownloadFile: nelle versioni precedenti veniva identificata come condizione di errore il fatto che il file avesse dimensione uguale a 0. A partire dalla versione 12.1 il sistema identifica come condizione di errore il fatto che lo status code della risposta sia maggiore o uguale a 400. Inoltre se viene identificato un errore, il file non viene creato dentro al dispositivo.
Le versioni precedenti di Instant Developer non segnalavano l'errore nel caso sincrono e notificavano l'evento OnFileUploaded con parametro Size uguale alla dimensione del file. Inoltre il file veniva comunque creato e conteneva la pagina web di errore generata dal web server da cui il file era stato scaricato.
La modifica dell'identificazione della condizione di errore riguarda sia le chiamate sincrone che quelle asincrone. Pertanto se si chiama il metodo DownloadFile tentando di scaricare un file che non esiste sul server, se la chiamata è sincrona il sistema genera l'eccezione "Status code: [STATUSCODE]" mentre se la chiamata è asincrona notifica l'evento OnFileUploaded con Size = -1. -
UploadFile: nelle versioni precedenti il sistema segnalava un errore solo se il file aveva dimensione uguale a 0 (cosa che avveniva sia se il file non esisteva nel dispositivo sia se il file esisteva ma era vuoto) o il server non aveva acquisito correttamente il file. A partire dalla versione 12.1 il sistema segnala un errore se il file non esiste nel dispositivo e se il server non ha acquisito correttamente il file.
La modifica dell'identificazione della condizione di errore riguarda sia le chiamate sincrone che quelle asincrone. Pertanto se si chiama il metodo UploadFile tentando di inviare un file ad un server web che non lo può acquisire oppure si tenta di inviare un file che non esiste sul dispositivo, se la chiamata è sincrona il sistema genera l'eccezione "File not uploaded" mentre se la chiamata è asincrona notifica l'evento OnFileUploaded con Size = -1.
-
DownloadFile: nelle versioni precedenti veniva identificata come condizione di errore il fatto che il file avesse dimensione uguale a 0. A partire dalla versione 12.1 il sistema identifica come condizione di errore il fatto che lo status code della risposta sia maggiore o uguale a 400. Inoltre se viene identificato un errore, il file non viene creato dentro al dispositivo.
Ultima modifica: 13/05/2022 / Validità: da 12.1.5300