Avatar billede subcover Nybegynder
04. januar 2001 - 05:23 Der er 12 kommentarer og
1 løsning

Asp og GET/POST

Er der nogen der kan fortælle mig hvordan jeg bruger HTTP GET funktionen i ASP, sender oplysninger afsted til en server, og hvordan jeg arbejder videre med svaret????? (Et eksempel ville være rart) :-)
Avatar billede sone Nybegynder
04. januar 2001 - 07:16 #1
Enten sætter du METHOD=\"get\" i din form - så går det helt automatisk med en alm. FORM.

Hvis du selv vil opbygge en link, skal du huske at bruge Server.URLEncode på strenge.

Response.Write(\"<A HREF=\"\"test.asp?id=\" & id & \"&test=\" & Server.URLEncode(test) & \"\"\">link</A>\")
Avatar billede joni@vordb Nybegynder
04. januar 2001 - 08:06 #2
Og for at få fat i det igen skriver du:
<%
testid = Request.QueryString(\"id\")
test = Request.QueryString(\"test\")
%>
Så har du de to varianter testid og test at arbejde vidre med, f.eks.
<%
Response.write \"Indholdet af Server.URLencode(test) var \" & test
%>

Avatar billede subcover Nybegynder
04. januar 2001 - 10:07 #3
Begge eksempler var rigtigt gode, men der hvor jeg har det virkelige problem er, at jeg skal kalde en URL og få svar fra den. Jeg laver IKKE selv svaret.
Avatar billede sone Nybegynder
04. januar 2001 - 10:11 #4
...du bliver nok nød til at komme med noget mere konkret...
Avatar billede subcover Nybegynder
04. januar 2001 - 10:22 #5
OK. Jeg skal i kontakt med en database, jeg ikke må få adgang til, så der er lavet en klient til at give mig de svar jeg skal have og ikke mere. Samtidig skal min forespørgsel være fra servesiden så brugeren slet ikke kan komme i nærheden af database URL\'en. Når jeg så sender forespørgslen (i formen: http://site?Action=Login&customerid=131313&Password=abcbac) kommer der et svar tilbage, som ifølge den beskrivelse jeg har fået ser ud som følgende:
<login>
  <customerid>12345</customerid>
  <status>Accepted</status>
  <booking>
    <bookingitem>
      <bookingid>123456789</easybookingid>
      <addressroad>Hovedgaden</addressroad>
      <addressno>2D</addressno>
      <postalcode>3800</postalcode>
      <accountno>123456</accountno>
    </bookingitem>
    <bookingitem>
      .........
    </bookingitem>
  </booking>
</login>
Det er det svar jeg ikke kan få fat i. Kaster det lys over tingende?
Avatar billede joni@vordb Nybegynder
04. januar 2001 - 10:32 #6
<%

\' *** Get a file through HTTP ( GetHttp(\"www.azero.dk/forside.asp\") )
Function GetHttp(strUrl)

  \' Reserve variables
  Dim strHost
 
  \' Start error handling
  On Error Resume Next

  \' Strip off http://
  If LCase(Left(strUrl, 7)) = \"http://\" Then
    strUrl = Right(strUrl, Len(strUrl) - 7)
  End If
 
  \' Split server address and filename
  If InStr(strUrl, \"/\") > 0 Then
    strHost = Left(strUrl, InStr(strUrl, \"/\") - 1 )
    strUrl = Right(strUrl, (Len(strUrl) - InStr(strUrl, \"/\")) + 1 )
  End If
 
  \' Add port if not included
  If InStr(strHost, \":\") = 0 Then
    strHost = strHost & \":80\"
  End If
 
  \' Create object
  set Socket = server.CreateObject(\"Socket.TCP\")

  \' Set hostadress
  socket.Host = strHost

  \' Set timeout to 5 seconds
  Socket.TimeOut = 5000

  \' Open connection to host
  Socket.Open

  \' Send getline for content
  Socket.SendLine(\"GET /\" & strUrl & \" HTTP/1.0\" & Chr(13) & Chr(10) & \"Host: \" & strHost & Chr(13) & Chr(10))

  \' Wait until content is recieved
  Socket.WaitForDisconnect()

  \' Insert data into function
  GetHttp = Socket.Buffer

  \' Close object
  Socket.Close()

  \' Error
  If Err.Number <> 0 Then
      Response.Write Err& \": \" & Err.Description
      Response.Write \"<br>Host:[\" & strHost & \"]<br>Url:[\" & strUrl & \"]\"
      Exit function
  End If
  On Error Goto 0

End Function

\' *** Get content within a tag (strS) ( GetHttpData(\"www.azero.dk/forside.asp\", \"body\") )
Function GetHttpData(strUrl,strS)
  Dim strT
  strT = GetHttp(strUrl)
  strT = Mid(strT, InStr(LCase(strT), \"<\" & LCase(strS)))
  strT = Mid(strT, InStr(LCase(strT), \">\") + 1)
  strT = Left(strT, InStrRev(LCase(strT), \"</\" & LCase(strS)) - 1)
  GetHttpData = strT
End Function

\' *** Get the header from a file through HTTP ( GetHttpHeader(\"www.azero.dk/forside.asp\") )
Function GetHttpHeader(strUrl)
  Dim strT
  strT = GetHttp(strUrl)
  strT = Mid(strT, 1, InStr(strT, Chr(13) & Chr(10) & Chr(13) & Chr(10)))
  GetHttpHeader = strT
End Function

\' *** Get the body from a file through HTTP ( GetHttpBody(\"www.azero.dk/forside.asp\") )
Function GetHttpBody(strUrl)
  Dim strT
  strT = GetHttp(strUrl)
  strT = Mid(strT, InStr(strT, Chr(13) & Chr(10) & Chr(13) & Chr(10)) + 4)
  GetHttpBody = strT
End Function


\' Hent alt mellem <body> og </body> fra vores bestillingsside og udskriv det
Response.Write GetHttpData(\"azero.dk/bestil/default.asp\", \"body\")

%>

Hentet fra www.azero.dk ´s supportside.
Avatar billede sone Nybegynder
04. januar 2001 - 10:38 #7
joni@vordb >> Husk lige at fortæl, at komponenten Socket.TCP skal være installeret på serveren for at det virker !
Avatar billede joni@vordb Nybegynder
04. januar 2001 - 10:42 #8
Korrekt sone, det glemte jeg at skrive :-)
Avatar billede subcover Nybegynder
04. januar 2001 - 10:48 #9
Jeg prøvede lige at teste det du havde sendt (uden modifikationer), og jeg får en fejl i linie 66 og 67 (mid) og 68 (left), der sen sådan ud:

424: Object required
Host:[azero.dk:80]
Url:[/bestil/default.asp]
Microsoft VBScript runtime error \'800a0005\'

Invalid procedure call or argument: \'Mid\'

/test/mindweb/azero.asp, line 66
Avatar billede subcover Nybegynder
04. januar 2001 - 10:49 #10
Iøvrigt er det jo også mit Webhotel!!! :-)
Avatar billede joni@vordb Nybegynder
04. januar 2001 - 10:52 #11
Sorry, indrømmer blankt at jeg blot kopierede eksemplet fra azero, jeg har ikke afprøvet det.
Prøv at skrive til dem, de plejer at være ganske flinke til at hjælpe.


Avatar billede netsrac Praktikant
04. januar 2001 - 17:41 #12
Har du et http komponent installeret på serveren ? Hvem er din udbyder ?

Det kræver at du har et http komponent installeret på serveren ellers kan du ikke gøre det, så skal du over i php :-)
Avatar billede subcover Nybegynder
10. august 2001 - 15:35 #13
Jeg lukker spørgsmålet
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester