VB.net Receive Posts - Simple HTTP Server

前端 未结 1 1223
盖世英雄少女心
盖世英雄少女心 2020-12-15 01:19

I wish to have a program that listen for posts on a specific port, e.g. http://xxx.xxx.xxx.xxx:60002?key=value

Where xxx.xxx.xxx.xxx is running my progr

相关标签:
1条回答
  • 2020-12-15 02:02

    Slight modification of the following code snippet (from http://social.msdn.microsoft.com/Forums/vstudio/en-US/b7f476d1-3147-4b18-ba5e-0b3ce8f8a918/want-to-make-a-webserver-with-httplistener ) worked for me:

    Imports System.Net
    Imports System.Globalization
    
    Module HttpListener
    
        Sub Main()
            Dim prefixes(0) As String
            prefixes(0) = "http://*:8080/HttpListener/"
            ProcessRequests(prefixes)
        End Sub
    
        Private Sub ProcessRequests(ByVal prefixes() As String)
            If Not System.Net.HttpListener.IsSupported Then
                Console.WriteLine( _
                    "Windows XP SP2, Server 2003, or higher is required to " & _
                    "use the HttpListener class.")
                Exit Sub
            End If
    
            ' URI prefixes are required,
            If prefixes Is Nothing OrElse prefixes.Length = 0 Then
                Throw New ArgumentException("prefixes")
            End If
    
            ' Create a listener and add the prefixes.
            Dim listener As System.Net.HttpListener = _
                New System.Net.HttpListener()
            For Each s As String In prefixes
                listener.Prefixes.Add(s)
            Next
    
            Try
                ' Start the listener to begin listening for requests.
                listener.Start()
                Console.WriteLine("Listening...")
    
                ' Set the number of requests this application will handle.
                Dim numRequestsToBeHandled As Integer = 10
    
                For i As Integer = 0 To numRequestsToBeHandled
                    Dim response As HttpListenerResponse = Nothing
                    Try
                        ' Note: GetContext blocks while waiting for a request.
                        Dim context As HttpListenerContext = listener.GetContext()
    
                        ' Create the response.
                        response = context.Response
                        Dim responseString As String = _
                            "<HTML><BODY>The time is currently " & _
                            DateTime.Now.ToString( _
                            DateTimeFormatInfo.CurrentInfo) & _
                            "</BODY></HTML>"
                        Dim buffer() As Byte = _
                            System.Text.Encoding.UTF8.GetBytes(responseString)
                        response.ContentLength64 = buffer.Length
                        Dim output As System.IO.Stream = response.OutputStream
                        output.Write(buffer, 0, buffer.Length)
    
                    Catch ex As HttpListenerException
                        Console.WriteLine(ex.Message)
                    Finally
                        If response IsNot Nothing Then
                            response.Close()
                        End If
                    End Try
                Next
            Catch ex As HttpListenerException
                Console.WriteLine(ex.Message)
            Finally
                ' Stop listening for requests.
                listener.Close()
                Console.WriteLine("Done Listening...")
            End Try
        End Sub
    End Module
    
    0 讨论(0)
提交回复
热议问题