Android предотвращает повторную попытку Glide при невозможности загрузить изображение - PullRequest
0 голосов
/ 24 января 2020

У меня в данный момент Glide загрузка изображений на стороне клиента. Бэкэнд настроен с Nginx в качестве обратного прокси и Uwsgi работает Django (python). При обслуживании файлов Nginx передает запрос на Django, который аутентифицирует запрос, а затем позволяет Nginx обслуживать файл. Если пользователь не аутентифицирован, возвращается 401 HttpResponse.

Проблема заключается в том, что при получении ответа 401 Glide пытается снова. Я хочу избежать этого бесполезного второго запроса. Это мой Nginx журнал доступа:

127.0.0.1 - - [24/Jan/2020:17:05:53 +0100] "GET /media/pictures/cat1.jpg HTTP/1.1" 301 0 "-" "Dalvik/2.1.0 (Linux; U; Android 9; Android SDK built for x86 Build/PSR1.180720.075)" "-"  
127.0.0.1 - - [24/Jan/2020:17:05:53 +0100] "GET /media/pictures/cat1.jpg/ HTTP/1.1" 200 7520 "-" "Dalvik/2.1.0 (Linux; U; Android 9; Android SDK built for x86 Build/PSR1.180720.075)" "-"  
127.0.0.1 - - [24/Jan/2020:17:08:08 +0100] "GET /media/pictures/tiger2.jpg HTTP/1.1" 301 0 "-" "Dalvik/2.1.0 (Linux; U; Android 9; Android SDK built for x86 Build/PSR1.180720.075)" "-"  
127.0.0.1 - - [24/Jan/2020:17:08:09 +0100] "GET /media/pictures/tiger2.jpg/ HTTP/1.1" 401 0 "-" "Dalvik/2.1.0 (Linux; U; Android 9; Android SDK built for x86 Build/PSR1.180720.075)" "-"  
127.0.0.1 - - [24/Jan/2020:17:08:10 +0100] "GET /media/pictures/tiger2.jpg HTTP/1.1" 301 0 "-" "Dalvik/2.1.0 (Linux; U; Android 9; Android SDK built for x86 Build/PSR1.180720.075)" "-"  
127.0.0.1 - - [24/Jan/2020:17:08:11 +0100] "GET /media/pictures/tiger2.jpg/ HTTP/1.1" 401 0 "-" "Dalvik/2.1.0 (Linux; U; Android 9; Android SDK built for x86 Build/PSR1.180720.075)" "-"  
127.0.0.1 - - [24/Jan/2020:17:08:11 +0100] "GET /media/pictures/cat1.jpg HTTP/1.1" 301 0 "-" "Dalvik/2.1.0 (Linux; U; Android 9; Android SDK built for x86 Build/PSR1.180720.075)" "-"  
127.0.0.1 - - [24/Jan/2020:17:08:12 +0100] "GET /media/pictures/cat1.jpg/ HTTP/1.1" 401 0 "-" "Dalvik/2.1.0 (Linux; U; Android 9; Android SDK built for x86 Build/PSR1.180720.075)" "-"  
127.0.0.1 - - [24/Jan/2020:17:08:12 +0100] "GET /media/pictures/cat1.jpg HTTP/1.1" 301 0 "-" "Dalvik/2.1.0 (Linux; U; Android 9; Android SDK built for x86 Build/PSR1.180720.075)" "-"  
127.0.0.1 - - [24/Jan/2020:17:08:13 +0100] "GET /media/pictures/cat1.jpg/ HTTP/1.1" 401 0 "-" "Dalvik/2.1.0 (Linux; U; Android 9; Android SDK built for x86 Build/PSR1.180720.075)" "-"  

Каждый файл запрашивается один раз. Как видите, при возврате 200 HttpResponse cat1.jpg запрашивается один раз. Затем, когда я пытаюсь с ошибочной аутентификацией и возвращаю 401, tiger2.jpg и cat1.jpg и каждый вызывается дважды. Android Studio NetworkProfiler подтверждает несколько последующих запросов. Как запретить Glide автоматически повторять попытку получения файла?

...