Я хочу загрузить файл с его URL-адресом. Я использую AsyncTask с HttpURLConnection, но когда я получаю код ответа, ошибка возврата сервера 403. Я использую HttpURLConnection в doInBackground.HttpURLConnection: Сервер возвращает HTTP 403 Запрещено
Код:
@Override
protected String doInBackground(String... sUrl) {
InputStream input = null;
OutputStream output = null;
HttpURLConnection connection = null;
try {
ext = FilenameUtils.getExtension(sUrl[0]);
fileName = FilenameUtils.getBaseName(sUrl[0]);
Log.i("Brieg", "storage : /storage/emulated/0/" + fileName + "." + ext);
URL url = new URL(sUrl[0]);
connection = (HttpURLConnection) url.openConnection();
connection.connect();
if (connection.getResponseCode() != HttpURLConnection.HTTP_OK) {
return "Server returned HTTP " + connection.getResponseCode() + " " + connection.getResponseMessage();
}
int fileLength = connection.getContentLength();
input = connection.getInputStream();
output = new FileOutputStream("/storage/emulated/0/" + fileName + "." + ext);
byte data[] = new byte[4096];
long total = 0;
int count;
while ((count = input.read(data)) != -1) {
if (isCancelled()) {
input.close();
return null;
}
total += count;
if (fileLength > 0)
publishProgress((int) (total * 100/fileLength));
output.write(data, 0, count);
}
}
catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
finally {
try {
if (output != null)
output.close();
if (input != null)
input.close();
}
catch (IOException ignored) {
}
if (connection != null)
connection.disconnect();
}
return null;
}
Где проблема?
Зная, что когда я получаю URL-адрес в браузере, загружается файл загрузки.
Заранее спасибо.
'Surl [0]' Пожалуйста, покажите, как ваш URL выглядит. – greenapps
'output = new FileOutputStream ("/storage/emulated/0/"+ fileName +". "+ Ext);'. Это не хорошо, используя жестко закодированные пути. Он не будет работать на многих устройствах. Что это за сервер? Где он находится (LAN/Интернет)? – greenapps
Я знаю, я просто использую это для тестирования, но приложение останавливается раньше. Url выглядит так: http://www.mywebsite.com/myfile.epub – MichelRobico