2011-07-31 1 views
1

私はvb.Netにサーバーコードを書いています。別のサーバーのHTTP 'GET'要求によって送信された変数を読み取るようにします。たとえば、最初のサーバーは、私は私のコードを書かれているが、それは唯一のhttpサーバによって送信されたアドレスを読み取って、このURLに私のサーバーによって使用される値は送信者、受信者、msgdata、recvtimeMSGIDある http://localhost/sms/incoming.php?sender=$originator&receiver=$recipient&msgdata=$messagedata&recvtime=$receivedtime&msgid=$messageidを送信しますサーバーのルートディレクトリにあるファイルを探します。私は、サーバーがHTTP 'GET'要求を使用して他のサーバーによって送信された変数を読み取るようにします。私のコードは、あなたがContext.Request.QueryStringオブジェクトからそれらを得ることができ私のサーバープログラムは、VB.NETで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 

答えて

1

以下に示します。

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 
+0

私はURLがどのようなものであるかのアイデアを与えるためにそれを書きました。 mySender = Context.Request.QueryString( "sender")で私を助けてください。ToString私はそれを働かせないようです。 – Staypa

+0

これはどんな種類のアプリケーションであるかを知る必要があります。それはIISの下で実行されているWebサイトですか?または、他の何か? –

+0

@ Robert ... VB.NETで書いたWebサーバーです – Staypa

関連する問題