Bufferstream bei POST

Moderator: Praktikum: Internet

Benutzeravatar
plane
Computerversteher
Computerversteher
Beiträge: 337
Registriert: 21. Okt 2005 00:18

Bufferstream bei POST

Beitrag von plane » 21. Apr 2008 17:07

Versuche mich gerade an der "POST" Aufgabe, und habe folgendes Problem;

im Bufferreader stehen ja erst alle Informationen vom Header...danach gibt es \r\n\r\n und danach steht der body Text, in dem sich der Inhalt des gesendeten Post befindet also in unserem Beispiel der clienttext = Hallo.

Wenn ich die while-Schleife mit readLine() drüberlaufen lasse gibt es hier einen Hänger, da an Ende nach clientext = Hallo das \r\n fehlt. Und wir somit diese Zeile nicht einlesen können. Klappt das bei euch?

Oder mache ich was falsch... :shock:

mehlvogel
Computerversteher
Computerversteher
Beiträge: 359
Registriert: 4. Mär 2004 14:56
Kontaktdaten:

Re: Bufferstream bei POST

Beitrag von mehlvogel » 21. Apr 2008 19:29

Disclaimer: Ich bin kein aktueller Teilnehmer des Praktikums.

readLine() terminiert nicht, weil es eben genau auf das Zeilenende wartet, welches es nicht bekommt. Die Reader haben allerdings auch eine normale read() Methode mit der man eine bestimmte Anzahl von Bytes lesen kann.
"Das Problem an Eleganz ist, dass man hart arbeiten muss um sie zu erreichen und eine gute Bildung braucht um sie zu erkennen" -- E. W. Dijkstra

Benutzeravatar
plane
Computerversteher
Computerversteher
Beiträge: 337
Registriert: 21. Okt 2005 00:18

Re: Bufferstream bei POST

Beitrag von plane » 21. Apr 2008 20:23

Ja mit read bekomm ich den einzelnen byte den ich dann zu char konvertiere, das ist allerdings nur die notlösung und kann so auf gar keinen fall gewollt sein...
ich verstehe nicht, warum kein umbruch mitgesendet wird am ende nach dem body content...

Benutzeravatar
foo
Endlosschleifenbastler
Endlosschleifenbastler
Beiträge: 179
Registriert: 22. Okt 2004 17:59

Re: Bufferstream bei POST

Beitrag von foo » 21. Apr 2008 20:48

plane hat geschrieben:Ja mit read bekomm ich den einzelnen byte den ich dann zu char konvertiere, das ist allerdings nur die notlösung und kann so auf gar keinen fall gewollt sein...
ich verstehe nicht, warum kein umbruch mitgesendet wird am ende nach dem body content...
http://www.rfc.net/rfc2616.html

Benutzeravatar
BlackHawk
Nichts ist wie es scheint
Beiträge: 23
Registriert: 27. Okt 2004 19:12

Re: Bufferstream bei POST

Beitrag von BlackHawk » 22. Apr 2008 18:14

Hallo!

Der BufferedReader kann nur Text lesen. Deshalb sollen
wir DataInputStream.read() zum Einlesen von Bytes verwenden.

(DataInputStream.readline() funktioniert nicht richtig und
sollen wir unter keinen Umständen verwenden -> siehe ppt-Präsentation)

Dennoch wirst du auch bei DataInputStream.read() das Problem haben, dass die
Operation blockiert, nachdem alle body-Bytes eingelesen sind.
Da hilft dir aber eine Methode der DataInputStream-Klasse weiter, die sie
von der Klasse FilterInputStream erbt...

Viele Grüße
BlackHawk

Xaero
Endlosschleifenbastler
Endlosschleifenbastler
Beiträge: 173
Registriert: 8. Feb 2006 20:06

Re: Bufferstream bei POST

Beitrag von Xaero » 22. Apr 2008 18:53

Müssen wir bei der Abgabe Test-Cases schreiben? Also wir haben es bis jetzt mit debugger und firefox getestet

Und eine andere Frage: Wie beende ich denn ein Server?

Benutzeravatar
SM
Endlosschleifenbastler
Endlosschleifenbastler
Beiträge: 167
Registriert: 10. Okt 2005 18:11
Wohnort: Darmstadt
Kontaktdaten:

Re: Bufferstream bei POST

Beitrag von SM » 23. Apr 2008 09:38

plane hat geschrieben: ich verstehe nicht, warum kein umbruch mitgesendet wird am ende nach dem body content...
Weil ein Zeilenumbruch am Ende fehl am Platz wäre. Was ist, wenn die gesendeten Daten keinen Text enthalten, sondern zB einen Dateiupload? Dann kann es passieren, dass mitten in der Datei die Bytefolge kommt, die in chars einem \r\n entspricht und Du würdest mitten in der Datei das Ende vermuten.

Ein Tipp meinerseits für Wagemutige: Wie wär's denn mal zu gucken, was der Client so an Informationen an den Server sendet? ;)
~ Per aspera ad astra. ~

Antworten

Zurück zu „Praktikum: Internet“