Seite 1 von 1

String über http an cgi-Programm senden.

Verfasst: 02.03.2011 11:25
von hth
Ich möchte einen String an ein im WEB liegendes perl-CGI-Script senden, dort bearbeiten und die Antwort empfangen.

Wie muss die Kommunikation ablaufen?

Eine Anpassung des untenstehenden Codes habe ich nicht hinbekommen.

Code: Alles auswählen

InitNetwork()

ConnectionID=OpenNetworkConnection("www.web.de",80)

*Buffer = AllocateMemory($1000)

SendNetworkString(ConnectionID, "GET http://web.de"+#LFCR$+#LFCR$)

Repeat
   Delay(10)
   Event = NetworkClientEvent(ConnectionID)
Until Event         ;timeout hier nicht berücksichtigt

Repeat
    Size = ReceiveNetworkData(ConnectionID, *Buffer,$1000)
    String$ + PeekS(*Buffer, Size, #PB_Ascii)
Until Not Size


Debug String$
hth

Re: String über http an cgi-Programm senden.

Verfasst: 02.03.2011 17:23
von shadow
:?

Also wenn ich dich richtig verstanden habe willst du einfach einen String als Parameter an eine URL übergeben und den Response einlesen.
Also einfach die URL anpassen
http://testseite.de?param=meinteststring

Und einfach die Antwort einlesen. Die zurückgegebenen HTML-Seiten sind ja auch nichts anderes als simpler plain text.

Re: String über http an cgi-Programm senden.

Verfasst: 03.03.2011 07:20
von hth
Nein, das ist nicht das Problem gewesen.

Hauptgrund warum es nicht ging:

Ich hatte das Gerüst irgendwo im Forum gefunden mit #LFCR$ statt #CRLF$

Für die Domain "test.de" und das Programm "perltest.pl" sähe es dann so aus:

Code: Alles auswählen

InitNetwork()

ConnectionID=OpenNetworkConnection("www.test.de",80)

*Buffer = AllocateMemory($1000)

x$+"GET /cgi-bin/perltest.pl?xyz HTTP/1.1"+#CRLF$
x$+"Host: test.de"+#CRLF$+#CRLF$

SendNetworkString(ConnectionID,x$)


Repeat
   Delay(10)
   Event = NetworkClientEvent(ConnectionID)
 Until Event

Repeat
    Size = ReceiveNetworkData(ConnectionID, *Buffer,$1000)
    String$ + PeekS(*Buffer, Size, #PB_Ascii)
Until Not Size

Debug String$
hth