Socket GET, HTTP/1.1 400 Bad Request
-
1. Woher willst du bei dieser Antwort wissen, dass sie vom Webhoster kommt? Ich sehe da nichts, was darauf hindeutet.
2. Logisch bricht es ab, du hast einen Buffer von 1024 Bytes übergeben, tatsächlich kommen aber 1609 Bytes bei dir an. Du liest hier als eine Anzahl an Bytes gar nicht aus. Schau dir mal Content-Length an.
Und deshalb empfehle ich auch das lesen vom RFC 2616. Denn es gibt auch die Möglichkeit, dass die Übertragungsart Chunked ist oder gar Encrypted. usw. usf.Daher muss man beim empfang den Header genau lesen und analysieren und kann dann den Body auslesen.
Grüssli
-
Viel mehr kannst du bei einmaligem Aufruf von recv() auch nicht erwarten. Du musst die Daten solange in einer Schleife abholen, bis die Verbindung beendet wurde.
-
Hallo,
ich habe das Problem gelöst.strcpy(tempo, "GET / HTTP/1.1\r\nHost: www.beispiel.de\r\n\r\n");
Danke für eure hilfe.
P.S. ich weiß dass das der Webhoster ich weil ich die abgefragte Seite kannte.
-
titanium schrieb:
Hallo,
ich habe das Problem gelöst.Solange bis
Transfer-encoding: chunked
ist.
-
Is ja logisch, wieviele Seiten liegen bei so einem Webhoster auf einer IP!
Der muss doch wissen, welche Seite man jetzt wirklich wollte.
Und das wiederum nur mit HTML 1.1!
-
Und das wiederum nur mit HTML 1.1!
-
host schrieb:
Und das wiederum nur mit HTML 1.1!
Was hab ich denn da geschrieben!
:p HTTP
-
Den Host-Header kann man doch auch bei HTTP 1.0 angeben?!
-
Bei mir lief es zuerst auch nicht, bis ich die
"\n\r" zu "\r\n" umgedreht hab. Dann gings.
Falls man mehrere Angaben macht (z. B. noch
"Content-Type: text/html" oder so - immer mit
"\r\n" abschließen und bei der letzten Zeile
mit "\r\n\r\n" abschließen.
-
Bei mir lief es zuerst auch nicht, bis ich die
"\n\r" zu "\r\n" umgedreht hab. Dann gings.
Falls man mehrere Angaben macht (z. B. noch
"Content-Type: text/html" oder so - immer mit
"\r\n" abschließen und bei der letzten Zeile
mit "\r\n\r\n" abschließen.
-
hey
also ich versuche das ganze auchnoch mit nem php script zu vereinen...
allerdings gelingt es mir noch nicht so ganzwenn ich
strcpy(tempo, "GET / HTTP/1.1\r\nHost: http://myserver.de/userlogin_sell.php?username=test&password=test&product=test\r\n\r\n");
sende bekomm ich auch nur ein bad seit error zurück
jemand ne idee?
-
"GET userlogin_sell.php?username=test&password=test&product=test HTTP/1.1\r\nHost: www.myhost.de\r\n\r\n"
so gehts
-
Dieser Thread wurde von Moderator/in pumuckl aus dem Forum C++ in das Forum Webzeugs verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.