String über http an cgi-Programm senden.

Für allgemeine Fragen zur Programmierung mit PureBasic.
hth
Beiträge: 76
Registriert: 08.10.2004 22:47

String über http an cgi-Programm senden.

Beitrag 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
Benutzeravatar
shadow
Beiträge: 189
Registriert: 23.03.2005 17:52
Wohnort: Lübeck

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

Beitrag 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.
ThinkPad T61 (in Gedenken) | PureBasic 4.61 B1 (32) | Windows 7 (32SP1) | ArchLinux (32) | Syllable (32)
hth
Beiträge: 76
Registriert: 08.10.2004 22:47

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

Beitrag 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
Antworten