Socket GET, HTTP/1.1 400 Bad Request
-
ein Beispiel ich gebe eine Seite ein, wo ich dessen Inhalt ich möchte.
Es kommt dann der Inhalt der Seite von Webhoster.HTTP/1.1 200 OK Date: Sat, 04 Oct 2008 22:00:56 GMT Server: Apache/1.3.41 (Unix) mod_gzip/1.3.26.1a mod_fastcgi/2.4.6 PHP/4.4.8 mod_ssl/2.8.31 OpenSSL/0.9.8h Last-Modified: Thu, 09 Jun 2005 14:23:52 GMT ETag: "3ee08a-649-42a850f8" Accept-Ranges: bytes Content-Length: 1609 Connection: close Content-Type: text/html <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <!-- ... --> <HTML><HEAD><TITLE>.......</TITLE> <META content="text/html; charset=iso-8859-1" http-equiv=Content-Type><!-- Changed by: System Administrator, 08-April-2002 --> <META content="MSHTML 5.00.3103.1000" name=GENERATOR></HEAD> <BODY bgColor=#ffffff link=#000000 vLink=#990000><BR><BR><BR> <CENTER> <TABLE bgColor=#6e7275 border=0 cellPadding=1 cellSpacing=0 width=500> <TBODY> <TR> <TD> <TABLE bgColor=#ffffff border=0 cellPadding=10 cellSpacing=0 width="100%"><TBODY> <TR> <TD align=right><A hr
Und das komische ist das genau bei <A hr aufhört, aber trotzdem das ist nicht der Inhalt der Seite die ich möchte.
-
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.