Унифицированный установщик Qt - обнаружен цикл перенаправления
У меня проблема с текущей версией унифицированного установщика Windows с открытым исходным кодом Qt5 (версия установщика 3.1.1) (через https://www.qt.io/download-qt-installer). Когда установщик пытается загрузить метаданные, я получаю следующую ошибку:
Обнаружен цикл перенаправления для http://qt.mirror.constant.com/online/qtsdkrepository/windows_x86/desktop/tools_cmake/qt.tools.cmake.win32/3.16.0-201912051042meta.7z.
Иногда он определяет другой файл.
Поэтому я немного покопался в этом и обнаружил, что этот файл легко доступен через мой браузер.
Я поискал в Google сообщение об ошибке и нашел еще пару человек с этой проблемой, но они были мертвыми, оставшиеся без ответа сообщения на форуме.
Поэтому я запустил Fiddler, чтобы посмотреть, что происходит, и заметил, что программа установки, похоже, запрашивает файлы со строкой параметров (в дополнение к cookie), содержащей X-OpenDNS-Session
, вот так:
GET http://qt.mirror.constant.com/online/qtsdkrepository/windows_x86/desktop/tools_cmake/qt.tools.cmake.win64/3.16.0-201912051042meta.7z?X-OpenDNS-Session=_82fd696d073c304a200860e03c7b0d51ee4d9270ef58_5G08M6i7_ HTTP/1.1
Cookie: X-OpenDNS-Session=387953a90fab404cdb0894406a533cb8782b9270ef41_pmc3gM1a
Connection: Keep-Alive
Accept-Encoding: gzip, deflate
Accept-Language: en-US,*
User-Agent: Mozilla/5.0
Host: qt.mirror.constant.com
И ответом на это будет перенаправление 302 обратно на тот же путь, но без строки параметров:
HTTP/1.1 302 Moved Temporarily
Server: Cisco Umbrella
Date: Fri, 27 Dec 2019 16:44:20 GMT
Content-Type: text/html
Content-Length: 192
Connection: keep-alive
Location: /online/qtsdkrepository/windows_x86/desktop/tools_cmake/qt.tools.cmake.win64/3.16.0-201912051042meta.7z
<html>
<head><title>302 Found</title></head>
<body bgcolor="white">
<center><h1>302 Moved Temporarily</h1></center>
<hr><center>Umbrella Cloud Security Gateway</center>
</body>
</html>
И я предполагаю, что вместо того, чтобы просто перейти к этому URL-адресу, установщик видит, что базовый URL-адрес такой же, и сообщает об этом как о цикле перенаправления (что кажется ошибкой, но я не могу решить эту проблему напрямую, я не думаю).
Кто-нибудь знает, как это обойти или что происходит?
Я понятия не имею, что такое OpenDNS и почему этот параметр вставлен; Я провел небольшое исследование и, по крайней мере, определил, что это не похоже на какую-то другую службу, установленную на моем компьютере, я думаю, что она встроена в установщик (хотя я не нашел это имя файла cookie в EXE, а также похоже, это признак того, что не у многих людей есть эта проблема; плюс я много раз устанавливал Qt в других системах и никогда не сталкивался с этим сам).
Это установка Windows 10 Pro на новый компьютер Lenovo; единственное другое крупное программное обеспечение, установленное в системе, - это VS 2019, Eclipse, Unity и Android Studio. Единственным предустановленным программным обеспечением была Lenovo Vantage - машина была достаточно чистой, чтобы не нуждаться в "обезвоживании".
Заметки:
- Я все равно получаю перенаправление, если добавляю параметры вручную в Chrome и с
curl
(и, конечно же, я получаю его с запущенным Fiddler и без него). Если кто-то еще хочет попробовать:- Откройте инструменты разработчика -> вкладка Сеть в хроме.
- Посетите http://qt.mirror.constant.com/online/qtsdkrepository/windows_x86/desktop/tools_cmake/qt.tools.cmake.win64/3.16.0-201912051042meta.7z?X-OpenDNS-Session=_82fd696d073c304a200860e03c7b0d51ee4d9270ef58_5G08M6i7_
- Посмотрите, получил ли он 302, а затем в конечном итоге запросил файл без параметра запроса.
- qt.mirror.constant.com преобразуется в 146.112.239.248 на моей машине.
- ✅ Обновление: я только что обнаружил, что не получаю перенаправление (и, следовательно, программа установки работает) при подключении через другую сеть (сотовый привязь). Зеркало разрешает 2001:19f0:1595:1403::1097 в этой сети. Я до сих пор не знаю причину, но это, по крайней мере, обходной путь. Я сформирую из этого ответ (хотя и неудовлетворительный) после завершения установки и получу более конкретную информацию.