Quell URL im downloadstringcompleted

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 7 Antworten in diesem Thema. Der letzte Beitrag () ist von Moonlite89.

    Quell URL im downloadstringcompleted

    Hallo zusammen,

    ich baue grade ein Programm mit welchem ich viele URLs asynchron runterlade um diese dann auszuwerten. Problem ist das ich im Downloadstringcompleted Event nicht mehr weiß welche URL genau grade behandelt wird (das ist sehr wichtig für die nächsten Schritte)

    Code sieht so aus:

    VB.NET-Quellcode

    1. Imports System.Net
    2. Public Class Form1
    3. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    4. Dim wc1 As New Net.WebClient
    5. wc1.DownloadStringAsync(New Uri("http://www.imdb.com/"))
    6. AddHandler wc1.DownloadStringCompleted, AddressOf wc1_DownloadStringCompleted
    7. End Sub
    8. Private Sub wc1_DownloadStringCompleted(ByVal sender As Object, ByVal e As System.Net.DownloadStringCompletedEventArgs)
    9. Dim text As String = e.Result
    10. Dim source As String = ???
    11. End Sub
    12. End Class


    Bei den drei Fragezeichen würde ich gerne die Quell URL einlesen also im String Source soll der String "http://www.imdb.com/" landen...
    Du könntest ne Globale Variable verwenden, welche du beim Click-Event befüllst und beim Completed-Event auslesen kannst.

    ist zwar nicht ganz so sauber aber fürs erste ^^
    Viele Frauen kamen, viele sind gegangen, eine ist geblieben 12.5.12 <3 ich liebe dich Schatz :love: :love:

    Moonlite89 schrieb:

    welche URL genau grade behandelt wird
    Arbeite mit Instanzen von Klassen.
    Mach Dir eine Klasse, die einen String abholt und pro abzuholendem String eine Instanz davon.
    Diese fütterst Du initial mit der URL und feddich.
    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!
    Das funktioniert so nicht ganz, da die Reihenfolge der Ergebnisse nicht gleich der Reihenfolge der gefütterten URLS ist.

    VB.NET-Quellcode

    1. Imports System.Net
    2. Public Class Form1
    3. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    4. Dim wc1 As New Net.WebClient
    5. wc1.DownloadStringAsync(New Uri("http://www.imdb.com/1"))
    6. wc1.DownloadStringAsync(New Uri("http://www.imdb.com/2"))
    7. wc1.DownloadStringAsync(New Uri("http://www.imdb.com/3"))
    8. wc1.DownloadStringAsync(New Uri("http://www.imdb.com/4"))
    9. wc1.DownloadStringAsync(New Uri("http://www.imdb.com/5"))
    10. wc1.DownloadStringAsync(New Uri("http://www.imdb.com/6"))
    11. wc1.DownloadStringAsync(New Uri("http://www.imdb.com/7"))
    12. AddHandler wc1.DownloadStringCompleted, AddressOf wc1_DownloadStringCompleted
    13. End Sub
    14. Private Sub wc1_DownloadStringCompleted(ByVal sender As Object, ByVal e As System.Net.DownloadStringCompletedEventArgs)
    15. Dim text As String = e.Result
    16. Dim source As String = ???
    17. End Sub
    18. End Class

    Es kann ja sein das zuerst /5 runtergeladen wird in dem Fall muss das auch in der source variable landen. Gibt es da keine einfache Möglichkeit? (Muss zugeben bin da nicht so der Experte).
    Ändere den Aufruf:

    VB.NET-Quellcode

    1. wc1.DownloadStringAsync(New Uri("http://www.imdb.com/"), "http://www.imdb.com/" )
    2. 'Dann:
    3. Private Sub wc1_DownloadStringCompleted(ByVal sender As Object, ByVal e As System.Net.DownloadStringCompletedEventArgs)
    4. Dim text As String = e.Result
    5. Dim source As String = e.UserState.ToString
    6. End Sub


    LG
    Das ist meine Signatur und sie wird wunderbar sein!
    zurückgezogen
    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!

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