HttpListenerRequest - GET-Werte sauber auslesen?

  • VB.NET

Es gibt 1 Antwort in diesem Thema. Der letzte Beitrag () ist von Trudi.

    HttpListenerRequest - GET-Werte sauber auslesen?

    Hi,

    ist es Möglich GET-Werte aus dem HttpListenerRequest sauber auszulesen?
    Mir ist bis jetzt leider nur HttpListenerRequest.Url.Query bekannt, da müsste ich das noch selber parsen.

    Würde mich über Hilfe freuen.

    LG,
    Trudi
    Hi,

    für die, die es interessiert, hier das Work-Around (Konvertiert von C#):

    VB.NET-Quellcode

    1. ' GET-Wert
    2. Private Structure GETParam
    3. Public Name As String
    4. Public Value As String
    5. End Structure
    6. ' GET-Parameter aus URL auslesen
    7. Private Function getGETParams(url As Uri) As List(Of GETParam)
    8. ' Liste der zurückzugebenden GET-Parameter
    9. Dim ret As New List(Of GETParam)()
    10. ' Wenn der Query nicht leer ist,
    11. ' dann parse ihn
    12. If url.Query <> String.Empty Then
    13. ' Das erste Zeichen des Querys ist immer "?"
    14. Dim query As String = url.Query.Substring(1)
    15. ' Parameter trennen
    16. Dim splittedparam As String() = query.Split("&"C)
    17. ' Parameter durchlaufen
    18. For Each param As String In splittedparam
    19. ' Wert einmal beim Gleichzeichen trennen
    20. Dim splitted As String() = param.Split(New [Char]() {"="C}, 2)
    21. ' Ein GETParam hat zwei Werte
    22. If splitted.Length < 2 Then
    23. Continue For
    24. End If
    25. ' Neues Objekt anlegen (das hier läuft
    26. ' auch mit .Net Framework 2.0)
    27. Dim gp As New GETParam()
    28. gp.Name = splitted(0)
    29. gp.Value = splitted(1)
    30. ' Objekt der Liste hinzufügen
    31. ret.Add(gp)
    32. Next
    33. End If
    34. Return ret
    35. End Function


    C# Quellcode

    C-Quellcode

    1. // GET-Wert
    2. struct GETParam
    3. {
    4. public string Name;
    5. public string Value;
    6. }
    7. /**
    8. * GET-Parameter aus URL auslesen
    9. */
    10. private static List<GETParam> getGETParams(Uri url)
    11. {
    12. // Liste der zurückzugebenden GET-Parameter
    13. List<GETParam> ret = new List<GETParam>();
    14. // Wenn der Query nicht leer ist,
    15. // dann parse ihn
    16. if (url.Query != string.Empty)
    17. {
    18. // Das erste Zeichen des Querys ist immer "?"
    19. string query = url.Query.Substring(1);
    20. // Parameter trennen
    21. string[] splittedparam = query.Split('&');
    22. // Parameter durchlaufen
    23. foreach (string param in splittedparam)
    24. {
    25. // Wert einmal beim Gleichzeichen trennen
    26. string[] splitted = param.Split(new Char[] { '=' }, 2);
    27. // Ein GETParam hat zwei Werte
    28. if (splitted.Length < 2)
    29. {
    30. continue;
    31. }
    32. // Neues Objekt anlegen (das hier läuft
    33. // auch mit .Net Framework 2.0)
    34. GETParam gp = new GETParam();
    35. gp.Name = splitted[0];
    36. gp.Value = splitted[1];
    37. // Objekt der Liste hinzufügen
    38. ret.Add(gp);
    39. }
    40. }
    41. return ret;
    42. }