Я получаю MalformedURLexception в следующем коде, и я понятия не имею, что его вызвало.
public void down(String url)
{ try {
URL url1 = new URL(url);
HttpURLConnection urlConnection = (HttpURLConnection) url1.openConnection();
urlConnection.setRequestMethod("GET");
urlConnection.setDoOutput(true);
urlConnection.connect();
File SDCardRoot = Environment.getExternalStorageDirectory();
//create a new file, specifying the path, and the filename
//which we want to save the file as.
File file = new File(SDCardRoot,"somefile.ext");
FileOutputStream fileOutput = new FileOutputStream(file);
InputStream inputStream = urlConnection.getInputStream();
int totalSize = urlConnection.getContentLength();
int downloadedSize = 0;
byte[] buffer = new byte[1024];
int bufferLength = 0; //used to store a temporary size of the buffer
while ( (bufferLength = inputStream.read(buffer)) > 0 ) {
fileOutput.write(buffer, 0, bufferLength);
//add up the size so we know how much is downloaded
downloadedSize += bufferLength;
//report progress
}
fileOutput.close();
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
Там написано неизвестный протокол.
Связь полностью в порядке, пока не появится читающая часть,
до этого код даже печатает файл нужного размера.
Также у файла, который я пытаюсь загрузить, есть URL как
http://download12.aomethin.com/blaa-blaa
Если я пытаюсь добавить www, запрос начинает перенаправлять.
Хотя я думаю, что это может быть глупостью, но я также хочу знать, как получить имя этого файла и сохранить файл с этим именем вместо того, который я выбрал.
Редактировать: программа работает сейчас, мне просто нужно знать, как мне получить правильное имя файла. И сделайте это фоновым процессом.