HTTP checken op method : POST

Status
Niet open voor verdere reacties.

huyhuy

Gebruiker
Lid geworden
26 mrt 2009
Berichten
8
Goedendag.

Voor een klein projectje wil ik een HTML pagina parsen door vb.net (Wil dus een HTTP servertje maken in vb,net). Nu wil ik als iemand op POST drukt in het html formulier dat vb.net mij dan een msgbox geeft indien alles naar waarheid is ingevuld. (dit wordt gecheckt met een session nummer en een citnum nummer die Vb.net opvraagt binnen een virtual chat.

Ik heb op internet al rond gezocht naar soort gelijken projectjes maar ik kwam er achter dat de meeste hiervan te uitgebreid zijn of voor c# zijn. Ik maak nu gebruikt van de volgende code die te vinden is op :

http://www.java2s.com/Tutorial/VB/0400__Socket-Network/SocketbasedWebserver.htm

Ik heb deze code bewerkt zodat het ook de POST method door laat gaan.

Nu mijn vraag.
Ik wil nu alleen de ingevulde post data opvragen/hebben in een string. Dus als ik bijvoorbeeld dit heb

naam=abc&citnum=123
Dan wil ik het zo hebben

dim name as string = abc
dim cit as integer = 123

Mijn vraag is Hoe doe ik dit? Ik ben er al 2 dagen mee aan het spelen maar het lukt mij elke keer maar niet.

Hopelijk kan iemand hier een code posten zodat het wel goed werkt voor me

Alvast bedankt :)
 
naam=abc&citnum=123
Dan wil ik het zo hebben

dim name as string = abc
dim cit as integer = 123

Mijn vraag is Hoe doe ik dit? Ik ben er al 2 dagen mee aan het spelen maar het lukt mij elke keer maar niet.

Grappig: ik gebruik dezelfde code!
Oplossing: Iets als explode doen?
 
Zal je wat meer informatie over explode kunnen geven?

Tuurlijk. Kom zo bij je, even mijn eigen script opzoeken, daar zit 't ook in :P
Om te checken of de pagina via een webbrowser wordt geopend of via m'n eigen "Remote Desktop" applicatie :)

Edit:
Code:
If htmlReq.Trim.Contains("Connect-Software: MyOS-Host-Client") Then

Hierboven zie je een voorbeeldje om te controleren of er in de headers staat:
Connect-Software: MyOS-Host-Client.
Als je dit ook doet om te controleren of er POST gegevens in de headers zit, zou het moeten lukken.

Code:
If htmlReq.Trim.ToLower.Contains("request-method: post") Then
MsgBox "Er is een POST Request volgens onze Headers."
Else
MsgBox "Er is een GET Request volgens onze Headers."
End If

Ik weet niet zeker of mijn stukje code klopt, want ik weet niet of Request-Method: Post in de headers zit met het ontvangen van een POST-Verzoek.

Edit2:
htmlReq is de Headers natuurlijk, weet niet welke Variable (Dim) jij hebt voor de Headers, moet je maar ff checken :P
 
Laatst bewerkt:
Er is hier een sectie VB.NET verplaatst dus.
 
Er is hier een sectie VB.NET verplaatst dus.

Ik meende dat ik hem daarin had gezet.

Even weer ontopic :)

Ik check het op de volgende manier is nogal erg moeilijk is want soms werkt het en soms niet. Is erg irritant ik zoek iets wat constant werkt.

Code:
if  strArray(0).Trim().ToUpper.Equals("POST")  then
Dim field_mail As String = GetBetween(htmlReq, "citnum=", "&")

                If field_mail = Nothing Or field_mail = "" Then
                    console_chat("Field->email is leeg! Blijf dit fout zich voordoen neem dan contact op.", 150, 0, 0, False, False)
                Else
                    console_chat("Inhoud test: " & field_mail, 150, 0, 0, False, False)

                End If
end if

mijn functie die ik aanroep (getbetween)

Code:
    Public Function GetBetween(ByRef Str_Renamed As String, ByRef dStart As String, Optional ByRef dEnd As String = "") As Object
        Dim x1, x2 As Integer
        x1 = InStr(1, Str_Renamed, dStart) + Len(dStart)

        If dEnd <> "" Then
            x2 = InStr(x1, Str_Renamed, dEnd) - x1
            If x1 > 0 And x2 > 0 Then
                GetBetween = Mid(Str_Renamed, x1, x2)
            Else
                GetBetween = Nothing
            End If
        Else
            If x1 > 0 Then
                GetBetween = Mid(Str_Renamed, x1)
            Else
                GetBetween = Nothing
            End If
        End If
    End Function
 
Ik heb ook een screenshot van hoe ik de data nu hebt

serverscreenie.jpg
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan