I've decided to try simply using guava IO instead since it was already in my classpath anyway:
String html = "";
try {
InputSupplier<? extends InputStream> supplier = Resources
.newInputStreamSupplier(metaUrl);
html = CharStreams.toString(CharStreams.newReaderSupplier(supplier,
Charsets.UTF_8));
} catch (Exception e) {
return null;
}
It generally takes a few days to crash so if I don't update this answer in a few days, assume this worked!
Update : 7 days so far without hanging... :)