HttpWebRequest-Probleme

  • VB.NET

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von QB2VB.

    HttpWebRequest-Probleme

    Hallo,
    Ich habe mich mal mit dem Thema HttpWebRequest beschäftigt und für mein Internetradio (ELV IR 100) eine Steuerung über die Weboberfläche gemacht.
    Es funktioniert auch soweit, dass ich die Buttons über HttpWebRequest "drücken" kann.
    Allerdings hängt sich das Programm auf, wenn man mehrere Anfragen hintereinander sendet (öfters hängt es sich schon nach der zweiten anfrage auf)
    Gibt es jetzt eine Möglichkeit dieses Problem zu beheben?

    Mein Code:

    VB.NET-Quellcode

    1. Sub Request_Now(ByVal Post1 As String)
    2. Try
    3. Dim Request As HttpWebRequest = CType(WebRequest.Create(IP & "/index.htm"), HttpWebRequest)
    4. Request.Method = "POST"
    5. Request.ContentType = "application/x-www-form-urlencoded"
    6. Dim byteArray() As Byte = Encoding.UTF8.GetBytes(Post1)
    7. Request.ContentLength = byteArray.Length
    8. Dim DataStream As Stream = Request.GetRequestStream()
    9. DataStream.Write(byteArray, 0, byteArray.Length)
    10. DataStream.Close()
    11. Catch es As Exception
    12. MsgBox(es.Message)
    13. End Try
    14. End Sub


    Zum aufrufen benutze ich dann z.B.:

    VB.NET-Quellcode

    1. Request_Now("btnStationNext=Nächster")


    Danke
    Das Programm friert komplett ein.
    Kann es daran liegen, dass man keine zweite abfrage senden darf, bevor die Andere nicht abgeschlossen ist?
    Das mit dem zweiten Thread werde ich mal ausprobieren.

    Edit:
    Ich habe es jetzt mal mit den neuen Threads ausprobiert, aber leider ohne Erfolg.
    Gibt es keine andere Möglichkeit an eine Website befehle zu senden? (Natürlich nicht das Webbrowser-Element)

    Edit 2:
    Habe es scheinbar hinbekommen (das Programm hat sich nach mehrmaligem Testen nicht aufgehängt)

    Ich musste einfach

    VB.NET-Quellcode

    1. Request.Abort()


    ergänzen und schon hat es funktioniert 8|
    Es ist allerdings auch noch in einem neuen Thread, aber nur damit, hat es ja auch nicht funktioniert
    Spoiler anzeigen

    Kompletter Code:

    VB.NET-Quellcode

    1. Sub Request_Now(ByVal Post1 As String)
    2. Try
    3. Dim Request As HttpWebRequest = CType(WebRequest.Create(IP & "/index.htm"), HttpWebRequest)
    4. Request.Method = "POST"
    5. Request.ContentType = "application/x-www-form-urlencoded"
    6. Request.Proxy = Nothing
    7. Dim byteArray() As Byte = Encoding.UTF8.GetBytes(Post1)
    8. Request.ContentLength = byteArray.Length
    9. Dim DataStream As Stream = Request.GetRequestStream()
    10. DataStream.Write(byteArray, 0, byteArray.Length)
    11. DataStream.Close()
    12. Request.Abort()
    13. Catch
    14. End Try
    15. End Sub

    Aufrufen wie oben

    Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von „QB2VB“ ()