Problem mit Dateidownload - System.Net.WebResponse

  • VB.NET

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von dive26.

    Problem mit Dateidownload - System.Net.WebResponse

    Moin!

    ich habe mir vor einigen Jahren ein Tool geschrieben um Dateien für osmand (Anwendung im Umfeld von OpenStreetMap) herunterzuladen.

    Das hat auch immer gut funktioniert.

    Nun bekomme ich aber eine Fehlermeldung mit der ich nichts anfangen kann.




    Hier mein Code der betreffenden Zeile:

    VB.NET-Quellcode

    1. Dim myResponse As System.Net.WebResponse = myRequest.GetResponse() 'Respons speichern


    und der gesamte Funktionscode:

    Spoiler anzeigen

    VB.NET-Quellcode

    1. ''' <summary>
    2. ''' herunterladen einer Datei
    3. ''' </summary>
    4. ''' <param name="myLink"></param>
    5. ''' <param name="myFile"></param>
    6. ''' <returns>false ... Fehler / true .... erfolgreich</returns>
    7. Private Function dwlByLink(myLink As String, myFile As String) As Boolean
    8. Try
    9. Dim myRequest As System.Net.WebRequest = System.Net.WebRequest.Create(myLink) 'Request erstellen
    10. Dim myResponse As System.Net.WebResponse = myRequest.GetResponse() 'Respons speichern
    11. Dim myStream As System.IO.Stream = myResponse.GetResponseStream() 'Datenstream aus dem Respons extrahieren
    12. Dim myReader As New System.IO.BinaryReader(myStream) 'Binärer "leser" zum Lesen des Streams
    13. 'Datei speichern
    14. Dim myFileStream As New System.IO.FileStream(myFile, System.IO.FileMode.Create) 'Datei auswählen
    15. Dim i As Long
    16. Dim Size = myResponse.ContentLength, Stage = 0
    17. For i = 1 To Size
    18. myFileStream.WriteByte(myReader.ReadByte())
    19. If i > Size / 10 * Stage Then
    20. 'Console.Write("\r{i} ({10 * Stage}%) Prozent übertragen.")
    21. Console.CursorLeft = 0
    22. Console.Write((10 * Stage).ToString & " Prozent übertragen.")
    23. Stage += 1
    24. End If
    25. Next
    26. myFileStream.Flush() 'noch mal spülen ...
    27. myFileStream.Close() ' und schließen
    28. Catch ex As Exception
    29. If ex.ToString.ToLower.IndexOf("timeout für den vorgang") > 0 Then
    30. Console.WriteLine("********* Timeout-Fehler *********")
    31. Else
    32. MsgBox(ex.ToString)
    33. End If
    34. _Err_Global += 1
    35. Return False
    36. End Try
    37. Return True
    38. End Function



    Kann mir jemand weiterhelfen?

    Jan

    *Topic verschoben*

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Marcus Gräfe“ ()

    @jan99 Hat das was mit http => https zu tun?
    Irgendwie ist die Sicherheit der Verbindung von der Gegenstelle geändert worden.
    Ggf. hilft ein Anruf dort.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    @jan99
    Versuchs mal mit folgendem VOR dem getrequest:

    VB.NET-Quellcode

    1. Imports System.Net
    2. ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12
    Liebe Grüße
    Roland Berghöfer

    Meine aktuellen und kostenlos verwendbaren Tools (mit VB.NET erstellt): freeremarkabletools.com | priconman.com | SimpleCalendar | AudibleTouch | BOComponent.com | bonit.at