Download einer Datei in einen String

    • VB.NET

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

      Download einer Datei in einen String

      Weils ja doch öfter mal gefragt wird und ich die SuFu leid bin, pack ichs endlich mal hier in Tipps & Tricks rein:
      Mit folgendem Code lässt sich eine Datei (z.B. HTML, Text, XML, ...) über HTTP in einen String herunterladen.

      Eine Datei ist natürlich nicht unbedingt eine reale Datei; sie kann auch zu 100% per PHP erzeugt werden, zum Beispiel um mit einer Datenbank im Internet zu arbeiten und PHP sendet dann irgendwas in Textform zurück.

      VB.NET-Quellcode

      1. Imports System
      2. Imports System.IO
      3. Imports System.Net
      4. Imports System.Text
      5. Try
      6. Dim request As HttpWebRequest = DirectCast(WebRequest.Create("http://example.com/"), HttpWebRequest) 'in dieser Zeile deine URL angeben
      7. Dim response As HttpWebResponse = DirectCast(request.GetResponse(), HttpWebResponse)
      8. Dim reader As StreamReader = New StreamReader(response.GetResponseStream())
      9. Dim myString as String = reader.ReadToEnd() 'das hier ist dein String
      10. If Not response Is Nothing Then response.Close()
      11. Catch
      12. ' catch or ignore errors here
      13. End Try


      Zur Erklärung:
      Der Try-Catch-End Try-Block fängt Fehler ab. Wer Fehler behandeln will (z.B. Adresse nicht erreichbar), macht das im Catch-Block. Dieser muss dann auf Catch ex as Exception o.Ä. geändert werden, über die Properties kann man die Fehlermeldung ausgeben lassen. Wer sich die Arbeit nicht antun will, kann auch einfach das Try, Catch und End Try entfernen und die "normalen" Fehlermeldungen von .net anzeigen lassen.

      Die erste Zeile nach dem Try erstellt ein HttpWebRequest (es wird also eine Anfrage an den Server formuliert).
      Die folgende Zeile sendet die Anfrage dann ab und erzeugt ein Response-Objekt. Dieses kann dann dazu verwendet werden die Antwort vom Server einzulesen.
      Die dritte Zeile erzeugt einen StreamReader, der eben Text aus dem Response-Objekt ziehen kann.
      In der vierten Zeile wird genau das gemacht und das "Ergebnis" in einen String gepackt.
      Die letzte Zeile gibt dann noch die Resourcen frei, die für die Serverantwort verwendet wurden.


      Keywords: VB.net, VB2005, Visual Basic 2005, HTTP, HTML, PHP, Download, HttpWebRequest, WebRequest, HttpWebResponse, StreamReader, readToEnd, System.IO, System.Net, System.Text

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Mad Andy“ ()

      Kürzer wäre es so:

      VB.NET-Quellcode

      1. Function Herunterladen(Datei as String)

      VB.NET-Quellcode

      1. My.Computer.Network.DownloadFile(Datei, Application.StartupPath & "\dl.tmp")

      VB.NET-Quellcode

      1. Dim dl_file as String = My.Computer.FileSystem.ReadAllText(Application.StartupPath & "\dl.tmp")

      VB.NET-Quellcode

      1. Return dl_file

      VB.NET-Quellcode

      1. End Function
      Es gibt eine allgemeingültige Regel die auch mal Ausnahmen zulässt:
      Gute Programmierer sind schlechte Grafiker und gute Grafiker sind schlechte Programmierer
      Noch kürzer (und sauberer) wäre es so:

      VB.NET-Quellcode

      1. Dim downloadString As String
      2. Using wc as New Net.WebClient()
      3. downloadString =wc.DownloadString(url)
      4. End Using


      msdn.microsoft.com/en-us/libra…lient.downloadstring.aspx
      Von meinem iPhone gesendet

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „nikeee13“ ()