HTTPWebRequest Download Fehler

  • VB.NET

Es gibt 8 Antworten in diesem Thema. Der letzte Beitrag () ist von Padarom.

    HTTPWebRequest Download Fehler

    Hallo,
    ich habe bei meinem aktuellen Code ein kleines Problem. Ich möchte einen Download des Inhaltes einer .txt Datei (welche online auf einem bestimmten Server liegt) ausführen. Dieser wird im String MeinErgebnis gespeichert und in MeinErgebnis1 in die einzelnen Zeilen gesplittet. Die Teile die für mich von Interesse sind, sind in Zeile 4 und 5 (da es mit 0 anfängt: 3 und 4).
    Das Problem ist jetzt: Solange die Datei "jungfräulich" ist (wird mit einem anderen Programm automatisch erstellt, gespeichert und hochgeladen) - Also noch nicht verändert, wird der Catch-Block zwar ausgelöst, aber dennoch wird alles richtig in der ListBox angezeigt. Das Witzige ist nun: Wenn ich die Datei ändere (egal ob in Zeile 4/5 oder woanders) gibt es weiterhin den Error, allerdings wird es nicht mehr in der ListBox angezeigt. Auch wenn ich diese Änderung rückgängig mache und abspeicher wird es nicht mehr in der ListBox angezeigt.
    Also sind meine Fragen: Woran liegt das? Und: Wieso wird der Catch-Block immer ausgelöst?

    VB.NET-Quellcode

    1. Try
    2. Dim req As HttpWebRequest = DirectCast(WebRequest.Create("http://lovemedo.bplaced.net/bestellungen/" & line), HttpWebRequest)
    3. Dim resp As HttpWebResponse = DirectCast(req.GetResponse(), HttpWebResponse)
    4. Dim reader As StreamReader = New StreamReader(resp.GetResponseStream())
    5. Dim MeinErgebnis As String = reader.ReadToEnd()
    6. Dim MeinErgebnis1 As String() = MeinErgebnis.Split(Environment.NewLine)
    7. Dim fahrer As String() = MeinErgebnis1(3).Split(":")
    8. Dim status As String() = MeinErgebnis1(4).Split(":")
    9. ListBox1.Items.Add(line3(0) & vbTab & fahrer(1) & vbTab & status(1))
    10. Catch
    11. MsgBox("Es ist ein Fehler aufgetreten.", MsgBoxStyle.Critical, "Fehler")
    12. End Try

    Ich hoffe ihr könnt mir weiterhelfen.

    Mit freundl. Grüßen
    Padarom
    Das stimmt eigentlich alles... Wenn ich die Haltepunkte so setze:

    VB.NET-Quellcode

    1. Dim MeinErgebnis1 As String() = MeinErgebnis.Split(Environment.NewLine)
    2. Stop
    3. Dim fahrer As String() = MeinErgebnis1(3).Split(":")
    4. Stop
    5. Dim status As String() = MeinErgebnis1(4).Split(":")
    6. Stop

    Kommt beim ersten Stop "MeinErgebnis1" (Länge 8, jede Zeile 1 String), beim 2. "MeinErgebnis1" und "fahrer" (Länge 2) und beim 3. "MeinErgebnis1", "fahrer" und "status" (Länge 2).
    Also so wie es sein soll. Dennoch kommt die Exception hier nach dem ersten Stop (Wenn alle Stops um sind kommt sie).

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

    Soo, hab den Fehler denke ich gefunden.
    Wenn ich die Dateien von Hand bearbeite bleiben die Zeilenumbrüche zwar da, allerdings kann er über Environment.NewLine scheinbar nicht mehr splitten (Array hat nur Länge 1, alle Zeilen direkt hintereinander), wodurch er mit Index 4 nichts anfangen konnte (bei mehreren Dateien die überprüft und aufgelistet werden).

    Jetzt ist aber die Frage: Wie kann ich effektiv mit Zeilenumbrüchen splitten, ohne die Datei herunterzuladen? edit: Klappt mit vbLf
    Dann wäre mein Problem gelöst :)

    Mit freundl. Grüßen
    Padarom

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