html - 我的服务器程序如何读取在 VB.NET 中使用 HTTP 'GET' 请求方法发送的变量?

标签 html vb.net http

我已经用 vb.Net 编写了服务器代码。我希望它读取由另一台服务器的 HTTP“GET”请求发送的变量。例如第一台服务器将发送这个 URL http://localhost/sms/incoming.php?sender=$originator&receiver=$recipient&msgdata=$messagedata&recvtime=$receivedtime&msgid=$messageid 我的服务器使用的值是 sender, receiver, msgdata, recvtime msgid 我写了我的代码,但它只读取 http 服务器发送的地址,并在服务器的根目录中查找文件。我希望服务器使用 HTTP“GET”请求读取其他服务器发送的变量。我的代码如下所示

' the web server only accepts get requests.
    If Mid(LCase(sbuffer), 1, 3) <> "get" Then
        'if not GET request then close socket and exit
        mySocket.Close()
        Return
    End If

    ' Extract path and filename from request
    sRequest = sbuffer.Substring(0, iStartPos - 1)
    sRequest.Replace("\\", "/")
    If ((sRequest.IndexOf(".") < 1) AndAlso (Not sRequest.EndsWith("/"))) Then
        sRequest = sRequest & "/"
    End If

    iStartPos = sRequest.LastIndexOf("/") + 1

    ' Get the filename
    sRequestedFile = sRequest.Substring(iStartPos)

    ' Get the relative path
    sDirName = sRequest.Substring(sRequest.IndexOf("/"), sRequest.LastIndexOf("/") - 3)

    ' Web server root path
    sLocalDir = sMyWebServerRoot

    ' if no filename specified
    ' look for default file
    If (sRequestedFile.Length = 0) Then
        sRequestedFile = _DefaultPage
        sPhysicalFilePath = sLocalDir & sDirName & sRequestedFile

        ' if no default file and no directory requested
        ' then show welcome page
        If Not File.Exists(sPhysicalFilePath) AndAlso (sDirName = "" OrElse sDirName = "/") Then

            sErrorMessage = sErrorMessage & "<BR><BR>No root directory found. Set up the root directory in the configuration file.</H2>"
            SendHeader(sHttpVersion, "", sErrorMessage.Length, " 404 Not Found")
            SendToBrowser(sErrorMessage)
            mySocket.Close()
            Return
        End If


    End If

最佳答案

您可以从 Context.Request.QueryString 对象中获取它们:

mySender = Context.Request.QueryString("sender").ToString

这假定您在服务器上运行的代码在 IIS 下运行。我注意到调用是针对 .PHP 页面的,想知道您实际上是如何获取运行 VB 代码的服务器的 url。

如果这只是将 URL 处理为字符串,那么下面应该为您处理:

        Dim tempArray As String()
    Dim tempValuePairs As String()
    Dim tempPair As String()
    Dim tempValue As String
    Dim tempString As String

    tempArray = sRequest.Split(CChar("?"))
    If tempArray.Length <> 2 Then
        'url not valid
        Return
    End If
    tempValuePairs = tempArray(1).Split(CChar("&"))

    For Each tempString In tempValuePairs
        tempPair = tempString.Split(CChar("="))
        tempValue = tempPair(1)

        'check for pair name, tempvalue will contain data
        Select Case tempPair(0).ToLower
            Case "sender"
                mySender = tempValue
            Case "receiver"
            Case "msgdata"
            Case "recvtime"
            Case "msgid"
            Case Else
        End Select
    Next

关于html - 我的服务器程序如何读取在 VB.NET 中使用 HTTP 'GET' 请求方法发送的变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6890035/

相关文章:

vb.net - 枚举类型的属性

php - 限制对某些站点页面的访问的最简单方法是什么?

javascript - Html 表单字段 - 删除空格 Javascript

javascript - 在每行开头添加 ' 并删除最后一行的逗号

c# - 正则表达式 - 如何查找单词和引用的短语

vb.net - 如何在 VSTS 构建期间生成 *.NUSPEC 文件?

html - 如何在表格上方添加空间?填充不起作用

html - 如何在不花费大量页面加载时间的情况下获得漂亮的背景图像?

http - HTTP URI 可以包含非 ASCII 字符吗?

python - 更正 css.map 文件的 MIME 类型