Witam. Piszę program mający na celu pobranie kodu strony HTML. I pojawił się problem:
this.inputStream = this.socket.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(this.inputStream));
String linia1 = reader.readLine();
reader = new BufferedReader(new InputStreamReader(this.inputStream));
String linia2 = reader.readLine();
Ja widzicie: buduję obiekt klasy Socket (socket), następnie otwieram InputStream z tego gniazda (inputStream), następnie tworzę ze strumienia BufferedReader (reader). No i na końcu czytam po kolei linie odpowiedzi.
czytam linikę pierwszą, ok, wszystko w porządku (czyli dostaję np: "HTTP/1.0 200 OK"),
ale już gdy czytam drugą linię: linia2, dostaję najczęściej 20 lub 30 linikę odpowiedzi.
Poprzez tą linikę kodu:
reader = new BufferedReader(new InputStreamReader(this.inputStream));
"zjadane" zostaje lilkanaście linijek odpowiedzi!
Oczywiście gdyby usunąć powyższy kod linia druga byłaby rzeczywiście drugą liniką odpowiedzi serwera, np: "Cache-Control: private".
Jednak dlaczego dodanie tejże linki nieprawidłowo czyta kod?
Proszę o darowanie sobie odpowiedzi: "To wywal tą linię!" bo to nie jest rozwiązanie... chciałbym znać przyczynę tego problemu.
Dzięki za odpowiedź