mehrere WebRequests gleichzeitig

  • VB.NET

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von Warfley.

    mehrere WebRequests gleichzeitig

    Hallo Leute,
    ich habe bei YouTube ein tolles Video zum Thema "Webrequest - zum Login nutzen" (am Beispiel von Youtube) gefunden. Der Code liegt auch bei und funktioniert spitze! Doch nun versuche ich seit gestern den Code so umzugestalten, dass ich mehrere WebRequests gleichzeitig ausführen kann (z.B gleichzeitig mit 2 Accounts einloggen). Da mehrere class'es verwendet werden, blicke ich nicht mehr so ganz duch :D Ich habe schon einiges versucht, aber es hat nie funktioniert. Könnte mir einer von euch vll einen kleinen Tipp geben, wie ich anfangen bzw rangehen muss?

    Video: hier

    Vielen Dank im Vorraus :D
    Also ich sehe mir nun sicher nicht das ganze Vid an und der Link im YT funktioniert bei mir nicht.

    Aber allgemein: die Klasse wird sicher irgendwie Instanziert. Dabei werden mit sicherheit auch CookieContainer angelegt, somit erstellst du einfach 2 Instanzen der Request Klasse und logst dich eben bei beiden ein, da jede Klasse wohlmöglich ihren eigenen Cookie Container haben (haben sollten wenns gut programmiert wurde), kannst du dich so oft anmelden wie du willst.

    Mit meiner HttpPostRequest Library gehts aufjedenfall ziemlich simpel.
    danke erstmal für deine antwort ... (was geht am link nicht? funktionier bei mir perfekt)

    und nein mit dem cookiecontainer hat es leider nichts zutun, das habe ich als erstes versucht, aber leider ohne erfolg!
    Wird von der Firmen Firewall als Risikoseite eingestuft *g*

    Nunja es MUSS mit dem CookieContainer zusammen hängen, dieser sit dafür verantwortlich das eine Seite weiß ob und wer eingeloggt ist oder nicht, ansonsten ist jeder WebRequest für die Seite wie ein neuer Besucher und Erstaufruf.
    Multithreading?

    Einfach pro thread ein webrequest, die unabhängig von einander laufen

    VB.NET-Quellcode

    1. Imports System.Net
    2. Imports System.IO
    3. Module Module1
    4. Sub Main()
    5. Dim t As New Threading.Thread(AddressOf WebReqThread)
    6. t.Start("http://Youtube.com@Post String")
    7. End Sub
    8. Private Sub WebReqThread(ByVal Info As String)
    9. '' Hier Kommt am ende der Html text der webseite rein ''
    10. Dim html As String
    11. '' Für die Cookies ''
    12. Dim ccon As CookieContainer
    13. '' URL ''
    14. Dim url As String = Info.Split("@")(0)
    15. '' Post String ''
    16. Dim PostString As String = Info.Split("@")(1)
    17. '' Als ByteArray ''
    18. Dim pdata() As Byte = Text.Encoding.ASCII.GetBytes(PostString)
    19. '' Webrequest ''
    20. Dim req As HttpWebRequest = HttpWebRequest.Create(url)
    21. '' WebResponse ''
    22. Dim res As HttpWebResponse
    23. Try
    24. '' Cookie Container initialisieren ''
    25. ccon = New CookieContainer
    26. '' Request auf login einstellen ''
    27. req.Method = "POST"
    28. req.ContentType = "application/x-www-form-urlencoded"
    29. req.ContentLength = pdata.Length
    30. req.AllowAutoRedirect = True
    31. '' Die seite von der die login seite aufgerufen wird ''
    32. req.Referer = "http://127.0.0.1/test1.php"
    33. '' Cookies setzen ''
    34. req.CookieContainer = ccon
    35. '' Useragent von Safari 5 ''
    36. req.UserAgent = "Mozilla/5.0 (Windows; U; Windows NT 6.1; de-DE) AppleWebKit/533.20.25 (KHTML, like Gecko) Version/5.0.4 Safari/533.20.27"
    37. '' Der Stream ''
    38. Dim str As Stream
    39. Dim reader As IO.StreamReader
    40. Try
    41. str = req.GetRequestStream
    42. '' Daten Schreiben
    43. str.Write(pdata, 0, pdata.Length)
    44. '' Response holen ''
    45. res = req.GetResponse
    46. '' Reader zum Lesen ''
    47. reader = New IO.StreamReader(res.GetResponseStream)
    48. '' HTML Text Lesen
    49. html = reader.ReadToEnd
    50. Finally
    51. str.Close()
    52. reader.Close()
    53. End Try
    54. Finally
    55. req = Nothing
    56. ccon = Nothing
    57. res = Nothing
    58. End Try
    59. End Sub
    60. End Module