Einzelnen Beitrag anzeigen

Benutzerbild von jokerfacehro
jokerfacehro

Registriert seit: 13. Feb 2007
306 Beiträge
 
Delphi 7 Enterprise
 
#1

Winsock HTTP Post

  Alt 17. Feb 2012, 14:40
Hallo,

ich nutze die WinSock-API für HTTP-Anfragen.

GET-Anfragen und das Empfangen der Daten funktioniert wunderbar.

Einziges Problem ist das POST.
Die übergebenen Variablen werden vom PHP-Script nicht erkannt bzw. nicht übergeben.


Ich sende in folgender Form meine Daten:


Code:
$header = "POST /testserver/index.php HTTP/1.1 \r\n"
         ."Host: localhost \r\n"
       ."Connection: Close \r\n"
       ."User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:10.0.1) Gecko/20100101 Firefox/10.0.1 \r\n"
       ."Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 \r\n"
       ."Content-Type: application/x-www-form-url-encoded"
       ."Content-Length: 8 \r\n\r\n"
       ."a=blabla";
Delphi-Quellcode:
const
  Post = 'POST <FILEPATH> HTTP/1.0'+#13#10+
             'Host: <HOSTNAME>'+#13#10+
             'Content-Type: <CONTENTTYPE>'+#13#10+
             'Content-Length: <CONTENTLENGTH>'+#13#10+
             'Connection: Close'+#13#10+#13#10+
             'a=parameter&b=bla';


Benutze ich ein HTML-Post-Form reagiert meine PHP-Seite wie gewollt.
Doch schicke ich meinen Post, bekomme ich die Antwort, dass die Variable
"Notice: Undefined index: a in C:\xampp\htdocs\testserver\index.php on line 2" usw.
nicht vorhanden sind.

Ich habe mit Wireshark mir die gesendeten Header angeschaut und sehe keine relevanten Unterschiede.
Meine Send-Methode überträgt auch alle Daten und die Antwort kommt auch (halt mit PHP-Error drin).

Desweiteren habe ich per fsockopen das gleiche mit PHP ausprobiert und es kommt genau dasselbe bei raus.

Sieht jemand den Fehler (vielleicht in meinem Header) ?


Grüße
"Never touch a running system administrator !"

Geändert von jokerfacehro (17. Feb 2012 um 15:05 Uhr)
  Mit Zitat antworten Zitat