HttpListenerResponse Daten per POST schicken

  • VB.NET

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

    HttpListenerResponse Daten per POST schicken

    Im beziehe mich auf dieses Thema. [VB.NET] Http Listener
    Dazu mache ich einen neuen Thread, da sich das Thema um das es jetzt geht abspaltet.

    Undzwar geht es darum, dass ich mit Hilfe von einem HttpListener reagieren will, und Daten per POST an ein Skript senden will.
    Ohne POST klappt es prima.

    VB.NET-Quellcode

    1. Option Strict on
    2. Imports System.Net
    3. Module Module1
    4. Sub Main()
    5. Listen()
    6. End Sub
    7. Public Sub Listen()
    8. If Not HttpListener.IsSupported Then
    9. Console.WriteLine("Windows XP SP2 or Server 2003 is required to use the HttpListener class.")
    10. Return
    11. End If
    12. Using listener As New HttpListener()
    13. listener.Prefixes.Add("http://*:80/")
    14. listener.Start()
    15. Console.WriteLine("Listening...")
    16. ' Note: The GetContext method blocks while waiting for a request.
    17. Dim context As HttpListenerContext = listener.GetContext()
    18. Dim request As HttpListenerRequest = context.Request
    19. ' Obtain a response object.
    20. Dim response As HttpListenerResponse = context.Response
    21. ' Construct a response.
    22. Dim responseString As String = "x=7"
    23. Dim buffer As Byte() = System.Text.Encoding.UTF8.GetBytes(responseString)
    24. ' Get a response stream and write the response to it.
    25. response.ContentLength64 = buffer.Length
    26. Dim output As System.IO.Stream = response.OutputStream
    27. output.Write(buffer, 0, buffer.Length)
    28. ' You must close the output stream.
    29. output.Close()
    30. 'listener.[Stop]()
    31. End Using
    32. End Sub
    33. End Module


    Ich habe nun die ersten zwei Ergebnisse der Google-Suche durch und bin echt am verzweifeln.
    Weiß jemand da etwas zu ?

    Vielen Dank und ein schönes Restwochenende.
    @slice
    Danke zunächst für dein Bemühen, aber hier handelt es sich um HttpListenerRequest nicht um HttpWebRequest, dementsprechen kann ich z.B nicht die Method="POST" setzten.

    Edit: Ich kann aber ausgehend von meinem Response die URl abrufen und eine Webrequest erzeugen. Das probier ich mal.

    Edit2: Ich hab es so probiert.

    VB.NET-Quellcode

    1. Option Strict on
    2. Imports System.Net
    3. Module Module1
    4. Sub Main()
    5. Listen()
    6. End Sub
    7. Public Sub Listen()
    8. If Not HttpListener.IsSupported Then
    9. Console.WriteLine("Windows XP SP2 or Server 2003 is required to use the HttpListener class.")
    10. Return
    11. End If
    12. Using listener As New HttpListener()
    13. listener.Prefixes.Add("http://*:80/")
    14. listener.Start()
    15. Console.WriteLine("Listening...")
    16. ' Note: The GetContext method blocks while waiting for a request.
    17. Dim context As HttpListenerContext = listener.GetContext()
    18. Dim request As HttpListenerRequest = context.Request
    19. ' Console.WriteLine(request.Url)
    20. Dim webrequest As WebRequest = webrequest.Create(request.Url)
    21. webrequest.Credentials = CredentialCache.DefaultCredentials
    22. webrequest.Method = "POST"
    23. webrequest.ContentType = "application/x-www-form-urlencoded"
    24. Dim responseString As String = "x=7"
    25. Dim buffer As Byte() = System.Text.Encoding.UTF8.GetBytes(responseString)
    26. Dim stream = webrequest.GetRequestStream()
    27. stream.Write(buffer, 0, buffer.Length)
    28. stream.Close()
    29. End Using
    30. End Sub
    31. End Module


    Es kommt aber vom Browser wenn ich eine PHP-Seite aufrufe die Meldung, dass keine Verbindung hergestellt werden konnte. Das ist ja auch logisch da es eine PHP Seite ist und xampp aus ist.
    Weiß jemand weiter ?

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