# Body eines http Request auslesen



## largeborn (12. Mrz 2010)

Hallo, ich habe eine Frage. Ich will zuerst den Header eines HTTP Request über Streams auslesen und dann den Body.


```
while((line = in.readLine())!= null && line.length() > 0) {
				System.out.println(line);
				
			}
```

liefert mir den Header, wie komm ich an den Body dran? Will anhand des MINE typs entscheiden, was für eine Data und dann Body in diese Datei schreiben.


----------



## Dow Jones (12. Mrz 2010)

Der Body einer HTTP-Message folgt unmittelbar auf den Header, den kannst du also bekommen indem du einfach weiter deinen Stream ausliest. Allerdings sollte man die Daten dabei besser als Bytewerte behandeln und dementsprechend nicht mit readLine() lesen.

Das einzige Problem ist, das es bei HTTP kein _End-of-Message_ Symbol oder sowas gibt. Du müsstest also aus dem gelesenen Header selber ermitteln wieviele Bytes noch für den Body folgen. Schau dazu mal in diesen Thread: Ende eines Http Response / Request

So aus dem Kopf meine ich aber mich zu erinnern das es ohnehin nur zwei Requestmethoden gab die einen Body haben, namentlich PUT und POST. Und bei beiden wird üblicherweise die Content-Length mit angegeben (oder vielleicht muß die sogar zwangsweise angegeben werden, weiss nicht mehr. Da musst du halt mal in den Http-Spezifikation nachschauen).


----------



## largeborn (12. Mrz 2010)

alles klar vielen dank!


----------

