Seite 1 von 1

HTTP Post Request ausgabe Form

Verfasst: 05.12.2009 10:44
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

Re: HTTP Post Request ausgabe Form

Verfasst: 05.12.2009 13:04
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.

Re: HTTP Post Request ausgabe Form

Verfasst: 05.12.2009 13:22
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: