I want to read the contents of a URL but don’t want to ‘hang’ if the URL is unresponsive. I’ve created a BufferedReader using the URL…
URL theURL = new URL(url); URLConnection urlConn = theURL.openConnection(); urlConn.setDoOutput(true); BufferedReader urlReader = new BufferedReader(newInputStreamReader(urlConn.getInputStream()));
…and then begun the loop to read the contents…
do { buf = urlReader.readLine(); if (buf != null) { resultBuffer.append(buf); resultBuffer.append('\n'); } } while (buf != null);
…but if the read hangs then the application hangs.
Is there a way, without grinding the code down to the socket level, to ‘time out’ the read if necessary?
I think URLConnection.setReadTimeout is what you are looking for.