Basically I have a url/link to a text file online and I am trying to download it locally. For some reason, the text file that gets created/downloaded is blank. Open to any sugge
Here is a safer alternative to new URL(url) #> new File(filename) !!
:
val url = new URL(urlOfFileToDownload)
val connection = url.openConnection().asInstanceOf[HttpURLConnection]
connection.setConnectTimeout(5000)
connection.setReadTimeout(5000)
connection.connect()
if (connection.getResponseCode >= 400)
println("error")
else
url #> new File(fileName) !!
Two things:
URL
object, if an error (404
for instance) is returned, then the URL
object will throw a FileNotFoundException
. And since this exception is generated from another thread (as URL
happens to run on a separate thread), a simple Try
or try/catch
won't be able to catch the exception. Thus the preliminary check for the response code: if (connection.getResponseCode >= 400)
.connection.setReadTimeout(5000)
.