From f2a70562cd33f0474bfd71f1af78c58ba7949c5d Mon Sep 17 00:00:00 2001 From: nilaoda Date: Tue, 27 Sep 2022 16:41:23 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=AF=E6=8C=81=20303=20(See=20Other)=20?= =?UTF-8?q?=E7=8A=B6=E6=80=81=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/N_m3u8DL-RE/Util/DownloadUtil.cs | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/N_m3u8DL-RE/Util/DownloadUtil.cs b/src/N_m3u8DL-RE/Util/DownloadUtil.cs index 012ca22..e7360ce 100644 --- a/src/N_m3u8DL-RE/Util/DownloadUtil.cs +++ b/src/N_m3u8DL-RE/Util/DownloadUtil.cs @@ -74,13 +74,23 @@ namespace N_m3u8DL_RE.Util try { using var response = await AppHttpClient.SendAsync(request, HttpCompletionOption.ResponseHeadersRead, cancellationTokenSource.Token); - if (response.StatusCode == HttpStatusCode.Found || response.StatusCode == HttpStatusCode.Moved) + if (response.StatusCode == HttpStatusCode.Found || response.StatusCode == HttpStatusCode.Moved || response.StatusCode == HttpStatusCode.SeeOther) { HttpResponseHeaders respHeaders = response.Headers; Logger.Debug(respHeaders.ToString()); if (respHeaders != null && respHeaders.Location != null) { - var redirectedUrl = respHeaders.Location.AbsoluteUri; + var redirectedUrl = ""; + if (!respHeaders.Location.IsAbsoluteUri) + { + Uri uri1 = new Uri(url); + Uri uri2 = new Uri(uri1, respHeaders.Location); + redirectedUrl = uri2.ToString(); + } + else + { + redirectedUrl = respHeaders.Location.AbsoluteUri; + } return await DownloadToFileAsync(redirectedUrl, path, speedContainer, headers, fromPosition, toPosition); } }