Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

16.09.2015, 20:04

Http POST liefert komisches Ergebnis

Ich hab mal ein bisschen mit HTTP (über Winsock) experimentiert. Folgendes ist mein Request:

Quellcode

1
2
3
4
5
6
POST /test.php HTTP/1.1
host: hier.steht.natuerlich.der.host.name
content-type: application/x-www-form-urlencoded
content-length: 25

stuff=lol&haha=1234&pp=aa


Mein PHP-Script 'test.php' sieht folgendermaßen aus:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
<?php
echo "hi\n";
foreach($_POST as $k => $v)
{
    echo "$k => $v\n";
}
echo "bye\n";
?>


Ich sende es mit Winsock und testweise auch mit Telnet sowie mit Putty und bekomme bei allen folgendes Ergebnis:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
HTTP/1.1 200 OK
Date: Wed, 16 Sep 2015 17:54:12 GMT
Server: Apache/2.4
Vary: Accept-Encoding
Transfer-Encoding: chunked
Content-Type: text/html

2a
hi
stuff => lol
haha => 1234
pp => aa
bye

0


Zu beachten ist '2a' vor 'hi', welches dort eigentlich nicht hingehören sollte sowie die 0 am Ende. Die '2a' ändert sich übrigens mit der Länge des HTTP-Bodies. Ist da bei mir ein Fehler?

MitgliedXYZ

Alter Hase

Beiträge: 1 369

Wohnort: Bayern

  • Private Nachricht senden

2

16.09.2015, 20:16

Vielleicht weil du im Header die Content Length angibst?

Zitat von »http://www.w3.org/Protocols/rfc2616/rfc2616-sec4.html«

4.4.3.If a Content-Length header field (section 14.13) is present, its decimal value in OCTETs represents both the entity-length and the transfer-length. The Content-Length header field MUST NOT be sent if these two lengths are different (i.e., if a Transfer-Encoding

3

16.09.2015, 20:31

Das ist ein chunked transfer
"Theory is when you know something, but it doesn’t work. Practice is when something works, but you don’t know why. Programmers combine theory and practice: Nothing works and they don’t know why." - Anon

4

16.09.2015, 21:16

Ah ok danke.

Werbeanzeige