iNNOKENTIY21

Silver Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Раз этИИ дни virjokk, opera этого не хочет но есть GPT-4o mini: Если сервер возвращает редирект, и вы хотите следовать за ним, но при этом не загружать содержимое файла, вы можете использовать HttpClient с методом GET, но ограничить загрузку содержимого. Однако, чтобы избежать загрузки файла, можно использовать HttpClient и обрабатывать редиректы вручную. Вот пример, как это сделать, следуя за редиректами и получая конечный URL: powershell Код: Add-Type -AssemblyName System.Net.Http # Создайте экземпляр HttpClient $httpClient = New-Object System.Net.Http.HttpClient $httpClient.DefaultRequestHeaders.Add("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36") $currentUrl = "https://www.opera.com/download/get/?partner=www&product=Opera+GX&opsys=Windows&arch=x64¬hanks=yes" $maxRedirects = 10 $redirectCount = 0 while ($redirectCount -lt $maxRedirects) { # Отправьте GET-запрос $response = $httpClient.GetAsync($currentUrl, [System.Net.Http.HttpCompletionOption]::ResponseHeadersRead).Result # Если есть редирект, обновите текущий URL if ($response.StatusCode -eq [System.Net.HttpStatusCode]::Found -or $response.StatusCode -eq [System.Net.HttpStatusCode]::MovedPermanently) { $currentUrl = $response.Headers.Location.ToString() $redirectCount++ } else { break } } # Получите реальную ссылку $realLink = $response.RequestMessage.RequestUri.AbsoluteUri # Выведите реальную ссылку $realLink | В этом коде мы используем HttpClient для отправки GET-запроса и следуем за редиректами вручную. Мы проверяем статус ответа и обновляем текущий URL, если это редирект. После достижения конечного URL мы выводим его. Этот подход позволяет вам следовать за редиректами и получать конечный URL без загрузки содержимого файла. |