Постоянно использую вот этот (кривой, руки не доходят отшлифовать) код:
public static String readPageFromUrl(String strURL) throws IOException, InterruptedException {
URL pURL = new URL(strURL);
URLConnection urlCon = (HttpURLConnection) pURL.openConnection();
urlCon.setConnectTimeout(30000000);
urlCon.setReadTimeout(30000000);
urlCon.setRequestProperty("User-Agent", "Mozilla");
BufferedReader in = new BufferedReader(new InputStreamReader(urlCon.getInputStream()));
StringBuilder result = new StringBuilder();
String readLine;
readLine = in.readLine();
while (readLine != null) {
result.append(readLine);
readLine = in.readLine();
}
in.close();
return result.toString();
}
Нюансы - не работает с charSet-ом, т.е. текст на некоторых сайтах будет в неправильной кодировке.
Решается заменой
in = new BufferedReader(new InputStreamReader(urlCon.getInputStream(), charset));
на
in = new BufferedReader(new InputStreamReader(urlCon.getInputStream(), "<нужный charSet>"));
И на некоторых сайтах стоит защита, конечно. Решается подстановкой правильного user agent, и других параметров. Я, для простоты, в таких случаях делаю вызов к
wget из java.