URLConnection дважды загружает сервер при загрузке файла? - PullRequest
1 голос
/ 09 октября 2019

После прочтения этой связанной проблемы: Запрос 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.

Любая помощь в отслеживании этой «ошибки» будет очень признательна.

...