944 messaggi dal 11 febbraio 2013
Scusate,
qualcuno può aiutarmi a capire come testare se il metodo in oggetto ha 'successo'?
ovvero se ha inviato il file
Sto facendo cosi
public async Task<byte[]> Send(string fileName)
        {
            var user = _configuration["Sftp:User"];
            var password = _configuration["Sftp:Password"];
                        
            using (WebClient webClient = new WebClient())
            {
                webClient.Credentials = new NetworkCredential(user, password);
                return await webClient.UploadFileTaskAsync(...);
            }
        }


Nel controller
[HttpGet]
        [Route("xmltosend/{id}")]
        public async Task<IActionResult> SendXml(long id)
        {
            var ordine = await _ordersRepository.GetOrder(id);
            var response = await _sftpService.Send(order.XmlName);
             
            if(response.Length==0) throw new SendXmlException();
           
            return Ok(id);
        }

La lunghezza della risposta è sempre zero ...invece il file viene caricato

cosa sbaglio?
11.886 messaggi dal 09 febbraio 2002
Contributi
Ciao,


qualcuno può aiutarmi a capire come testare se il metodo in oggetto ha 'successo'?

Se il caricamento fallisce dovrebbe sollevarti una WebException. Verificalo sbagliando l'url oppure staccando il cavo di rete mentre un upload è in corso.

Se invece l'operazione si completa senza eccezioni, vuol dire che il caricamento è avvenuto correttamente.


La lunghezza della risposta è sempre zero ...

Beh, ad esempio un server può rispondere con lo status code 204 No Content e perciò la risposta può essere di lunghezza 0.
Ma tu stai caricando il file su un server HTTP o FTP?

ciao,
Moreno

Enjoy learning and just keep making
944 messaggi dal 11 febbraio 2013
Su Ftp
Funziona bene
Voglio solo preparare l'utente all'errore
Modificato da jjchuck il 10 ottobre 2019 08:27 -
11.886 messaggi dal 09 febbraio 2002
Contributi
Ciao,

Voglio solo preparare l'utente all'errore

Cioè vuoi mostrargli un errore personalizzato su quel che è successo? Puoi mettere il codice di caricamento in un blocco try...catch e, se si dovesse verificare un'eccezione, tu la catturi ed eventualmente ne rilanci una più informativa.

ciao,
Moreno

Enjoy learning and just keep making
944 messaggi dal 11 febbraio 2013
Se invece lancio l'errore quando la risposta di quel metodo è null?

È sbagliato?

Tanto faccio come mi hai detto :)
Però pour parler

Ciao
11.886 messaggi dal 09 febbraio 2002
Contributi
Ciao Jonata,


Se invece lancio l'errore quando la risposta di quel metodo è null?

Non so... quel metodo può restituire null, effettivamente?
La documentazione non lo menziona. Dice invece che in caso di errori di comunicazione solleva una WebException. Vedi qui al paragrafo Exceptions.
https://docs.microsoft.com/it-it/dotnet/api/system.net.webclient.uploadfiletaskasync?view=netframework-4.8

ciao,
Moreno

Enjoy learning and just keep making

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.