HTTP-request for a rss feed
evelyne
- https
Hallo,
Ich implementiere einen Socket in C für ein rss feed http request. Die URL des RSS feed ist http://www.nichtlustig.de/rss/nichtrss.rss
dabei benutze ich den command:
GET /rss/nichtrss.rss HTTP/1.1\r\n\r\n
hostname ist dabei: www.nichtlustig.de
ich bekomme die fehlermeldungen wie:
HTTP/.1 400 Bad Request
client sent HTTP/1.1 request without hostname
Die hostname ist ja schon mitgeschickt wurde. deshalb verstehe ich die fehlermeldungen nicht. ich wäre froh wenn jemand mir da helfen könnte?
vielen dank im voraus
evelyne
Hallo,
GET /rss/nichtrss.rss HTTP/1.1\r\n\r\n
HTTP/.1 400 Bad Request
client sent HTTP/1.1 request without hostnameDie hostname ist ja schon mitgeschickt wurde. deshalb verstehe ich die fehlermeldungen nicht. ich wäre froh wenn jemand mir da helfen könnte?
HTTP/1.1 schreibt vor, dass Du einen Host-Header mitsenden musst (damit werden VirtualHosts realisiert, eine Socketverbindung ist nämlich immer auf IP-Ebene und ohne den Header hat ein HTTP-Server keine Chance, herauszufinden, welchen Host der Client gemeint hat, bei VirtualHosts zeigen nämlich mehrere Hostnamen auf die gleiche IP) - und Du tust dies eben nicht.
Sende folgenden String:
GET /rss/nichtrss.rss HTTP/1.0\r\nHost: www.nichtlustig.de\r\n\r\n
Ich würde Dir vor allem deswegen HTTP/1.0 und nicht HTTP/1.1 vorschlagen, weil Du Chunked verstehen können musst, wenn Du einen HTTP/1.1-Request stellst.
Ansonsten empfehle ich Dir einfach mal, die entsprechenden Standards zu lesen:
* RFC 1945: HTTP/1.0
* RFC 2616: HTTP/1.1
* RFC 2617: HTTP/1.1 Authentication
Übrigens: Für C gibt es etliche platformübergreifende frei verwendbare Bibliotheken, mit denen man HTTP-Anfragen stellen kann - warum willst Du das eigentlich nachimplementieren?
Viele Grüße,
Christian
Hallo Christian
vielen dank für deine email. ich werde es mal probieren.
viele grüsse
evelyne
Hallo,
GET /rss/nichtrss.rss HTTP/1.1\r\n\r\n
HTTP/.1 400 Bad Request
client sent HTTP/1.1 request without hostnameDie hostname ist ja schon mitgeschickt wurde. deshalb verstehe ich die fehlermeldungen nicht. ich wäre froh wenn jemand mir da helfen könnte?
HTTP/1.1 schreibt vor, dass Du einen Host-Header mitsenden musst (damit werden VirtualHosts realisiert, eine Socketverbindung ist nämlich immer auf IP-Ebene und ohne den Header hat ein HTTP-Server keine Chance, herauszufinden, welchen Host der Client gemeint hat, bei VirtualHosts zeigen nämlich mehrere Hostnamen auf die gleiche IP) - und Du tust dies eben nicht.
Sende folgenden String:
GET /rss/nichtrss.rss HTTP/1.0\r\nHost: www.nichtlustig.de\r\n\r\n
Ich würde Dir vor allem deswegen HTTP/1.0 und nicht HTTP/1.1 vorschlagen, weil Du Chunked verstehen können musst, wenn Du einen HTTP/1.1-Request stellst.
Ansonsten empfehle ich Dir einfach mal, die entsprechenden Standards zu lesen:
* RFC 1945: HTTP/1.0
* RFC 2616: HTTP/1.1
* RFC 2617: HTTP/1.1 AuthenticationÜbrigens: Für C gibt es etliche platformübergreifende frei verwendbare Bibliotheken, mit denen man HTTP-Anfragen stellen kann - warum willst Du das eigentlich nachimplementieren?
Viele Grüße,
Christian