Download di un file da un sito Web

di il
11 risposte

Download di un file da un sito Web

Ho necessità di scaricare un file da un sito web, ho scritto il seguente codice:
 Dim readText() As String = File.ReadAllLines(Application.StartupPath & "\Preferenze.tfm")
        Dim CartArchDIS As String = readText(1)
        Dim CartArchTAF As String = readText(0)
        Dim LinkTAF As String = "http://www1.agenziaentrate.gov.it/servizi/TafDis/download.php?&tipofile={0}&iduff={1}1"
        Dim LinkM = String.Format(LinkTAF, "DIST", "OR")
        ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12
        Dim misurate As New WebClient()
        
        misurate.DownloadFileAsync(New Uri(LinkM), CartArchDIS & "/Dist.zip")
Purtroppo mi segnala:
"Connessione sottostante chiusa: Errore imprevisto durante un'operazione di ricezione"
Non riesco a capire il motivo, qualche suggerimento?
grazie

11 Risposte

  • Re: Download di un file da un sito Web

    Che versione di .NET Framework stai usando ??

    che comando devi dare esattamente ??
    questo ??
    
    http://www1.agenziaentrate.gov.it/servizi/TafDis/download.php?&tipofile=DIST&iduff=OR1
    
    sicuro che non ci sia un "1" di troppo alla fine ??
  • Re: Download di un file da un sito Web

    Che versione di .NET Framework stai usando ??
    4.7.2

    che comando devi dare esattamente ??
    http://www1.agenziaentrate.gov.it/servizi/TafDis/download.php?&tipofile=DIST&iduff=OR1

    sicuro che non ci sia un "1" di troppo alla fine ??
    sicurissimo

    Hai provato a simulare il codice per vedere se il problema si presenta anche a te?
    Grazie
  • Re: Download di un file da un sito Web

    Giorgio ha scritto:


    "Connessione sottostante chiusa: Errore imprevisto durante un'operazione di ricezione"
    Non riesco a capire il motivo, qualche suggerimento?
    Visto che usi la versione "Async" del metodo, il tuo programma rimane in attesa o controlla il termine dell'operazione in qualche modo?
  • Re: Download di un file da un sito Web

    Prova questo codice, a me funziona
    
        Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
    
            ServicePointManager.SecurityProtocol = CType(3072, Net.SecurityProtocolType) ' TLS 1.2
            ServicePointManager.ServerCertificateValidationCallback = Function(senders, certificate, chain, sslPolicyErrors) True
    
        End Sub
    
        Private Sub Form1_Shown(sender As Object, e As System.EventArgs) Handles Me.Shown
    
            Dim wc = New WebClient
            wc.Headers.Add(HttpRequestHeader.UserAgent, "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:90.0) Gecko/20100101 Firefox/90.0")
            wc.DownloadFile("http://www1.agenziaentrate.gov.it/servizi/TafDis/download.php?&tipofile=DIST&iduff=OR1", _
                My.Computer.FileSystem.SpecialDirectories.Desktop & "\DIST.zip")
    
        End Sub
    
  • Re: Download di un file da un sito Web

    Alka ha scritto:


    Giorgio ha scritto:


    "Connessione sottostante chiusa: Errore imprevisto durante un'operazione di ricezione"
    Non riesco a capire il motivo, qualche suggerimento?
    Visto che usi la versione "Async" del metodo, il tuo programma rimane in attesa o controlla il termine dell'operazione in qualche modo?
    si controlla il termine dell'operazione con il seguente codice:
    AddHandler misurate.DownloadProgressChanged, AddressOf ShowDownloadProgressMis
            AddHandler misurate.DownloadFileCompleted, AddressOf OnDownloadCompleteMis
            
             Private Sub OnDownloadCompleteMis(ByVal sender As Object, ByVal e As AsyncCompletedEventArgs)
            If Not e.Cancelled AndAlso e.Error Is Nothing Then
    
                Dim CartArchDIS As String
                Dim readText() As String = File.ReadAllLines(Application.StartupPath & "\Preferenze.tfm")
                CartArchDIS = readText(1)
    
                ZipFile.ExtractToDirectory(CartArchDIS & "dist.zip", CartArchDIS)
    
                My.Computer.FileSystem.DeleteFile(CartArchDIS & "dist.zip", FileIO.UIOption.OnlyErrorDialogs, FileIO.RecycleOption.DeletePermanently)
                Verifica_date_archivi()
                AggiornaDateTAFMis(dataTAF, dataMis, sigla, nomeprov)
            Else
                MsgBox(e.Error.Message, MsgBoxStyle.Critical, "Download archivi Misurate")
                BtuEsci.Enabled = True
    
            End If
        End Sub
        
        Private Sub ShowDownloadProgressMis(ByVal sender As Object, ByVal e As DownloadProgressChangedEventArgs)
            ProgressBarMis.Value = e.ProgressPercentage
            LblPerMis.Text = e.ProgressPercentage & "%"
            Dim totbyte = e.TotalBytesToReceive
        End Sub
        
    
  • Re: Download di un file da un sito Web

    Giorgio ha scritto:


    si controlla il termine dell'operazione con il seguente codice:
    
    [...]
    ZipFile.ExtractToDirectory(CartArchDIS & "dist.zip", CartArchDIS)
    [...]            
    
    Non manca uno slash dopo CartArchDIS?
  • Re: Download di un file da un sito Web

    Alka ha scritto:


    Giorgio ha scritto:


    si controlla il termine dell'operazione con il seguente codice:
    
    [...]
    ZipFile.ExtractToDirectory(CartArchDIS & "dist.zip", CartArchDIS)
    [...]            
    
    Non manca uno slash dopo CartArchDIS?
    Lo slash è già inserito nella variabile CartArchDis
  • Re: Download di un file da un sito Web

    Giorgio ha scritto:


    Lo slash è già inserito nella variabile CartArchDis
    Nel primo esempio non era così.
    Ora ne siamo sicuri?

    Inoltre, per combinare tra loro i percorsi di file e directory con sicurezza si usa Path.Combine(), non il concatenamento di stringhe.

    Hai tentato anche la soluzione di SirJo?
    Siamo sicuri che il problema sia proprio nel download e non in qualche altra operazione correlata o successiva?
  • Re: Download di un file da un sito Web

    Alka ha scritto:


    Giorgio ha scritto:


    Lo slash è già inserito nella variabile CartArchDis
    Nel primo esempio non era così.
    Ora ne siamo sicuri?

    Inoltre, per combinare tra loro i percorsi di file e directory con sicurezza si usa Path.Combine(), non il concatenamento di stringhe.

    Hai tentato anche la soluzione di SirJo?
    Siamo sicuri che il problema sia proprio nel download e non in qualche altra operazione correlata o successiva?
    Si, in effetti nel primo esempio il codice era sbagliato, l'ho corretto.
    Ho provato il codice di sirJo, ma da lo stesso errore.
    Ho provato a scaricare gli archivi direttamente dal sito e per alcune provincie segnala:

    Impossibile raggiungere questa pagina
    La connessione è stata reimpostata.
    Prova a:

    Verifica della connessione
    Verifica del proxy e del firewall
    Usare la diagnostica di rete Windows
    ERR_CONNECTION_RESET


    Alla fine penso che il problema sia nel sito dell'Agenzia delle Entrate, cosa ne pensi?
    grazie
  • Re: Download di un file da un sito Web

    Visto che non ti funziona il codice di sirjo, sei sicuro di aver autorizzzato la tua applicazione sul firewall correttamente?
  • Re: Download di un file da un sito Web

    surfernet ha scritto:


    Visto che non ti funziona il codice di sirjo, sei sicuro di aver autorizzzato la tua applicazione sul firewall correttamente?
    Mi puoi spiegare come dovrei procedere.
    Grazie
Devi accedere o registrarti per scrivere nel forum
11 risposte