HTTP Post Request ausgabe Form

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
X360 Andy
Beiträge: 1206
Registriert: 11.05.2008 00:22
Wohnort: Bodensee
Kontaktdaten:

HTTP Post Request ausgabe Form

Beitrag von X360 Andy »

Morgen

Ich hab mich grad mal mit dem Post Request mit PB beschäftigt.
Soweit kein Problem, nur stört mich die Form wie mir der Request zurück gegeben wird.

Meine test.php sieht so aus ( Xampp )

Code: Alles auswählen

<?php
 $test = $_POST["test"];
   if (isset($test)){
  echo "ok";
   }else{
  echo "nope";
   }
?>

Code: Alles auswählen

EnableExplicit

InitNetwork()

Global header.s
Global info.s
Global result.s
Global size.l
Global id.l
Global index.l
Global *buffer = AllocateMemory(20000)

info = "test=test"
id = OpenNetworkConnection("localhost", 80)

If id
  header = "POST /test.php HTTP/1.0" + #CRLF$
  header + "Host: localhost" + #CRLF$
  header + "Referer: pb.de" + #CRLF$
  header + "Content-type: application/x-www-form-urlencoded" + #CRLF$
  header + "Content-length: " + Str(Len(info)) + #CRLF$
  header + "Connection: close" + #CRLF$ + #CRLF$
  header + info + #CRLF$
  SendNetworkString(id, header)
  
  Repeat
    Delay(10)
  Until NetworkClientEvent(id)
  
  Repeat
    
    size = ReceiveNetworkData(id, *buffer, MemorySize(*buffer))
    result + PeekS(*buffer)
    
   For index = 1 To  CountString(result, #CRLF$)+1
    Debug StringField(result,index, #CRLF$)
  Next

  ; bzw einfach nur debug result

  Until size<MemorySize(*buffer)
  
  CloseNetworkConnection(id)
EndIf
End
Und so bekomme ich das zurück, jetzt würde ich gerne nur den Plaintext als Seiteninhalt zurück bekommen ( bei der test.php entweder "ok" oder "nope").
Klar jetzt könnte ich einfach mit der String Lib z.B nach "Content-Type:" suchen und erst kurz danach den Text ausgeben aber das ist nicht wirklich eine schöne Lösung so wie ich sie mir gerade vorstelle.
Jemand eine gutte idee ?

Code: Alles auswählen

HTTP/1.1 200 OK
Date: Sat, 05 Dec 2009 08:42:55 GMT
Server: Apache/2.2.9 (Debian) PHP/5.2.11
X-Powered-By: PHP/5.2.11
Vary: Accept-Encoding
Content-Length: 2
Connection: close
Content-Type: text/html

ok
Benutzeravatar
coder
Beiträge: 204
Registriert: 25.09.2005 17:53
Computerausstattung: Intel Core2Quad Q8200 @ 2.33GHz
ASUS P5Q3, 2GB DDR3-1066 RAM, ATi Raedeon HD 4850
Wohnort: Deutschland
Kontaktdaten:

Re: HTTP Post Request ausgabe Form

Beitrag von coder »

Der Webserver sendet zweimal (manche auch dreimal) einen Zeilenumbruch, also #CRLF$+#CRLF$ (bzw. #CRLF$+#CRLF$+#CRLF$ ) Das kannst du erkennen und danach alle Zeichen als Content rausfiltern.
Windows 7 x64 | PureBasic 4.60 4.50 4.02
Ja verdammt, meine Eltern wohnen immer noch bei mir!
Benutzeravatar
X360 Andy
Beiträge: 1206
Registriert: 11.05.2008 00:22
Wohnort: Bodensee
Kontaktdaten:

Re: HTTP Post Request ausgabe Form

Beitrag von X360 Andy »

Das hab ich ja oben gemacht.
Damit ich überhaupt einen Zeilenumbrucht hinkriege.
Also kommt #CRLF$+#CRLF$ bzw #CRLF$+#CRLF$+#CRLF$ "immer" vor dem Seiteninhalt.
Gut Danke :allright:
Antworten