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