Header von Messagebody trennen

Flaah

Grünschnabel
Hallo zusammen.
grübel schon ne ganze weile über folgendem Problem:

Ich sitze gerade an nem Client der ein HTTp request sendet (was auch wunderbar funktioniert) und die von einem webserver angeforderte Datei in eine Datei auf Festplatte einliest. Soweit die Theorie.

Das problem besteht nun darin, den HTTP header vom Message Body zu trennen.
Meine Idee war, die leerzeile, die dazwischen liegt dazu herzunehmen. Falls diese kommt, dann das schreiben über bytestream.

Bin bisher wiefolgt vorgegangen:
Code:
int aFileOutputStream fos = new FileOutputStream( 
                                 "c:/line.txt");    //mein stream um datei zu erzeugen u. zu 
                                                       schreiben 
                                               
            int len; 
                 byte[] b=new byte[10];                            
                
                 while ((len=input.read(b))!=-1){ 
                
                 fos.write(b); 
                                                      
                   System.out.write(b,0,len); 
                                                    } 

                   //also byte für byte in Datei
tja nur werd ich eben den header nicht los. Wie erkenne ich denn diese LEerzeile? :confused:

Ich hoffe ihr könnt mir weiter helfen! Danke im Vorraus

P.S. würde die Sache auch mit BufferedReader und.. readline() funktionieren?
Meine Vermutung, nei da es bei beispielsweise bei gifs... auf die einzelnen bytes ankommt.
 
Kannst du die Verbindung nicht einfach
mit java.net.URL, java.net:URLConnection aufbauen...

Bin mir nicht sicher ob alle Header mit "Connection: close"
enden. Sonst könntest du einfach mit java.util.regex den Header suchen,
ans Ende springen und den Rest in die Datei schreiben.
 
Die URL Klasse soll leider nicht verwendet werden, sonst wär die ganze Sache ein 3 Zeile schon klar :rolleyes: . Der Header endet nicht immer mit Connection:close() sondern mit einer Leerzeile, hab grade den Tip bekommen die zurückbekommenen ints in char umzuwandeln und dann auf die Sequenz "r\ n \r \n " zu überprüfen, wenn die kommt dann kann ich beginnen in die Datei zu schreiben. Mal sehen obs klappt hört sich recht logisch an.
 
Zurück