diff options
author | ByteHamster <info@bytehamster.com> | 2022-04-02 11:41:15 +0200 |
---|---|---|
committer | ByteHamster <info@bytehamster.com> | 2022-04-02 11:51:04 +0200 |
commit | 0e43c3e5087dbe7cc43087fc0105d1575b5de251 (patch) | |
tree | 9470718cfb3906aac596934375b625b6a3779e17 /core/src/main | |
parent | 310eccc4ce0d90d95c7f34439ffcc3b29b007c42 (diff) | |
download | AntennaPod-0e43c3e5087dbe7cc43087fc0105d1575b5de251.zip |
Upgrade feed url to https if possible
Diffstat (limited to 'core/src/main')
-rw-r--r-- | core/src/main/java/de/danoeh/antennapod/core/service/download/HttpDownloader.java | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/core/src/main/java/de/danoeh/antennapod/core/service/download/HttpDownloader.java b/core/src/main/java/de/danoeh/antennapod/core/service/download/HttpDownloader.java index 01c135061..2393cedef 100644 --- a/core/src/main/java/de/danoeh/antennapod/core/service/download/HttpDownloader.java +++ b/core/src/main/java/de/danoeh/antennapod/core/service/download/HttpDownloader.java @@ -73,6 +73,10 @@ public class HttpDownloader extends Downloader { httpReq.cacheControl(new CacheControl.Builder().noCache().build()); // noStore breaks CDNs } + if (uri.getScheme().equals("http")) { + httpReq.addHeader("Upgrade-Insecure-Requests", "1"); + } + if (!TextUtils.isEmpty(request.getLastModified())) { String lastModified = request.getLastModified(); Date lastModifiedDate = DateUtils.parse(lastModified); @@ -284,15 +288,19 @@ public class HttpDownloader extends Downloader { responses.add(response); response = response.priorResponse(); } - if (responses.isEmpty()) { + if (responses.size() < 2) { return; } Collections.reverse(responses); int firstCode = responses.get(0).code(); + String firstUrl = responses.get(0).request().url().toString(); + String secondUrl = responses.get(1).request().url().toString(); if (firstCode == HttpURLConnection.HTTP_MOVED_PERM || firstCode == StatusLine.HTTP_PERM_REDIRECT) { - String secondUrl = responses.get(1).request().url().toString(); Log.d(TAG, "Detected permanent redirect from " + request.getSource() + " to " + secondUrl); permanentRedirectUrl = secondUrl; + } else if (secondUrl.equals(firstUrl.replace("http://", "https://"))) { + Log.d(TAG, "Treating http->https non-permanent redirect as permanent: " + firstUrl); + permanentRedirectUrl = secondUrl; } } |