Chciałbym odzyskać zawartość adresu URL. podobne do pytonów:Dlaczego powinienem używać adresu url.openStream zamiast adresu url.getContent?
html_content = urllib.urlopen("http://www.test.com/test.html").read()
W przykładach (java2s.com) widać bardzo często następujący kod:
URL url = new URL("http://www.test.com/test.html");
String foo = (String) url.getContent();
opisie getContent jest następujący:
Gets the contents of this URL. This method is a shorthand for: openConnection().getContent()
Returns: the contents of this URL.
Moim zdaniem to powinno działać idealnie dobrze. Buuut oczywiście ten kod robi praca, ponieważ podnosi błąd:
Exception in thread "main" java.lang.ClassCastException: sun.net.www.protocol.http.HttpURLConnection$HttpInputStream cannot be cast to java.lang.String
Oczywiście zwraca InputStream.
Więc pytam siebie: jaki jest cel tej funkcji, która nie robi tego, co wydaje się robić? A dlaczego nie ma w tym żadnej wskazówki na temat dziwactwa? I dlaczego zobaczyłem to na kilku przykładach?
Czy to źle?
Zalecanym rozwiązaniem (stackoverflow) jest użycie url.openStream(), a następnie odczytanie strumienia.