SorgenkindMech: wrapper HTTP/1.1 bad request 400

moins

ich hab mal wieder ein problem

und zwar benutzt php jetz durch irgentein update (keine ahnung welches, könnte n php-upgrade sein) nun bei http-wrappern http 1.1 in seinem header statt 1.0

das hat zur folge, dass ich zum beispiel mittels file_get_contents("http://bla/datei.xxx") den fehler bekomme:
Bad request 400

soweit ich herausgefunden habe, liegt das daran, dass bei HTTP/1.1 ein host vor dem GET angegeben werden muss

das habe ich folgendermaßen versucht zu lösen:

$cscontext=array('http' => array('header' => 'Host: server'));
$cscontext = stream_context_create($cscontext);
$datei=chunk_split(base64_encode(file_get_contents("http://".$_SERVER['HTTP_HOST']."/".$bildname,0,$cscontext)));

wie man sieht will ich auf selbigen server zugreifen, auf dem auch das script läuft, nur ich brauch halt die geparste datei

woanders konnte ich das mit output-buffering umgehen, aber hier habe ich leider nicht die möglichkeit ....

übrigens ging es mal ohne $cscontext, aber jetzt nicht mehr ;(

hat jemand eine ahnung, wie ich das jetz bewerkstelligen kann?

der http ist ein IIS 5.1 auf WinXpPro, php 5.1.2

ich hoffe jemand weiß rat

vielen dank schonmal ;)

  1. moins

    ich hab mal wieder ein problem

    und zwar benutzt php jetz durch irgentein update (keine ahnung welches, könnte n php-upgrade sein) nun bei http-wrappern http 1.1 in seinem header statt 1.0

    das hat zur folge, dass ich zum beispiel mittels file_get_contents("http://bla/datei.xxx") den fehler bekomme:
    Bad request 400

    Moin,
    also ich bin recht sicher dass PHP auch bei HTTP/1.1 den Host-Header sendet, hat es bei 1.0 ja auch, sonst würden 99% aller Server garkein Ergebnis liefern. Dein Problem muss also vermutlich wo anders liegen - schau doch mal (über Server logs, oder falls möglich Netzwerk Traffik Analyzer) wie das Request tatsächlich aussieht, welches PHP schickt.

    Ansonsten hast jederzeit die Möglichkeit via fsockopen() dein eigenes HTTP/1.0 Request zu erzeugen - beispiele dazu gibt's im PHP Manual zur entsprechenden Funktion.

    greetz RFZ