187 messaggi dal 23 maggio 2002
Ciao a tutti.

Non sono assolutamente esperta di win form, quindi abbiate pazienza... cerco di spiegarmi!

Per necessità, devo creare un programmino semplice semplice che mi prende dei file da web (nel caso specifico parliamo di immagini) e me li salva in locale. Chiaramente non posso usare un ftp! I file hanno nome progressivo, per fortuna. Esempio:
www.miosito.it/1.jpg
www.miosito.it/2.jpg
.....

Ora l'unica difficoltà che poteva esserci era che un'immagine fosse stata cancellata e quindi si viene reindirizzati su una pagina standard di errore: www.miosito.it/errore.htm

Ok... ho girato un po' in rete e poi ho deciso di utilzzare downloadfile.

In poche parole faccio così:
- mi creo un ciclo for da 1 a n per il nome dell'immagine e mi costruisco la stringa completa dell'url della foto
- poi controllo l'indirizzo web con req = req.Create(UrlImg) e res = req.GetResponse(). Se UrlImg è uguale a res.ResponseUri.AbsoluteUri allora procedo con il download
- myWebClient.DownloadFile(UrlImg, UrlLocale & "\" & imgName)

Le immagini che devo scaricare sono molte ma piccole, tra i 100 e i 150 kb al massimo.
Ora, quando lancio il programma, la prima la scarica tranquillamente, va avanti con il ciclo e si blocca sul secondo download.... non ho idea di cosa faccia. Vedo che la crea nella cartella locale ma resta a 0 kb.... problemi di timeout? Problemi del server? booo.... non saprei proprio...
Lasciandolo stare per diverso tempo alla fine un errore lo da System.Web.Exception in System.dll, proprio sulla riga del DownLoadFile ...

Qualcuno è in grado di spiegarmi cosa succede e come risolverlo? Grazie mille.... confido in voi!
Il dettaglio completo della WebException sarebbe perfetto per capire. Comunque se fai il cast della risposta su HttpWebResponse hai la proprietà StatusCode che ti dà in modo più sicuro la risposta ottenuta dal server.
Inoltre, ricrea sempre la webrequest. Non capisco se usi la classe WebClient o WebRequest

Ciao

Il mio blog
Homepage
187 messaggi dal 23 maggio 2002
Ciao Ricciolo ti devo ringraziare!

Con una frase mi hai illuminata!  Per ora quindi tutto procede! Grazie.
187 messaggi dal 23 maggio 2002
Avrei ancora una domanda...

Dunque, l'applicazione lanciata in debug da dentro VS funziona anche se sembra un po'... appesantita. Ora ho generato un exe (sempre con VS) e sembra ancora più pesante! Ad un certo punto, comunque, il ciclo si blocca.
La classe WebClient e l'utilizzo di DownloadFile dentro un ciclo for può avere delle controindicazioni in questo senso? Non so, utilizza troppo alcune risolrse? Quali accorgimenti posso prendere?
Non ho presente tutto il codice che hai fatto, ma assicurati che faccia una richiesta per volta e di fare il dispose di tutte le classi che implementano IDisposable. La sensazione di pesantezza puoi avercela perché usi DownloadFile ed è tutto sincrono, andatoti a bloccare l'interfaccia. Crea un thread apposito o usa i metodi Begin*** ma occhio che devi cambiare come fai il ciclo

Ciao

Il mio blog
Homepage

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.