После прочтения этой связанной проблемы: Запрос HttpURLConnection дважды отправляется на сервер для загрузки файла Я убедился, что вместо url.openStream()
используется urlConnection.getInputStream()
, но я все еще вижу, что мой сервер получает два запроса наодна загрузка.
Это AsyncTask, который я использую для загрузки файла с моего веб-сервера Django:
@Override
protected String doInBackground(String... sUrl) {
String path = "/sdcard/YourApp.apk";
try {
URL url = new URL(sUrl[0]);
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
urlConnection.addRequestProperty("Authorization", "Token " + authToken);
urlConnection.connect();
int fileLength = urlConnection.getContentLength();
// download the file
InputStream input = new BufferedInputStream(urlConnection.getInputStream());//url.openStream());
OutputStream output = new FileOutputStream(path);
byte data[] = new byte[1024];
long total = 0;
int count;
while ((count = input.read(data)) != -1) {
total += count;
//publishProgress((int) (total * 100 / fileLength));
output.write(data, 0, count);
}
output.flush();
output.close();
input.close();
urlConnection.disconnect();
} catch (Exception e) {
Log.e("SVC0", e.getMessage());
}
return path;
}
Затем я просматриваю журналы Django и вижу, что присутствуют два запроса:
[09/Oct/2019 02:30:29] "GET /update HTTP/1.1" 301 0
[09/Oct/2019 02:30:35] "GET /update/ HTTP/1.1" 200 19451876
Я использую Android 5.1.1, и я пытался закомментировать многие части вышеупомянутой функции, чтобы изолировать проблему, но я просто не могу понять, почему она вызывает множественные запросы и эту ошибку 301.
Любая помощь в отслеживании этой «ошибки» будет очень признательна.