diff options
author | daniel oeh <daniel.oeh@gmail.com> | 2014-03-17 13:02:37 +0100 |
---|---|---|
committer | daniel oeh <daniel.oeh@gmail.com> | 2014-03-17 13:02:37 +0100 |
commit | 3b5e83c74f17a318162f39a2004fe33207de1f10 (patch) | |
tree | 6ece845c5f5cbee56bfeec4d61ac08adb478b054 /src/de/danoeh/antennapod/service/download/HttpDownloader.java | |
parent | 6cb3a30307910b8f043af559607ae73a62e5a623 (diff) | |
download | AntennaPod-3b5e83c74f17a318162f39a2004fe33207de1f10.zip |
Added authentication support to DownloadRequester and HttpDownloader
Diffstat (limited to 'src/de/danoeh/antennapod/service/download/HttpDownloader.java')
-rw-r--r-- | src/de/danoeh/antennapod/service/download/HttpDownloader.java | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/src/de/danoeh/antennapod/service/download/HttpDownloader.java b/src/de/danoeh/antennapod/service/download/HttpDownloader.java index 1ffea19d5..4b6455343 100644 --- a/src/de/danoeh/antennapod/service/download/HttpDownloader.java +++ b/src/de/danoeh/antennapod/service/download/HttpDownloader.java @@ -8,6 +8,7 @@ import de.danoeh.antennapod.R; import de.danoeh.antennapod.util.DownloadError; import de.danoeh.antennapod.util.StorageUtils; import org.apache.commons.io.IOUtils; +import org.apache.commons.lang3.StringUtils; import org.apache.http.Header; import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; @@ -54,6 +55,9 @@ public class HttpDownloader extends Downloader { new UsernamePasswordCredentials(parts[0], parts[1]), "UTF-8", false)); } + } else if (StringUtils.isEmpty(request.getUsername()) && request.getPassword() != null) { + httpGet.addHeader(BasicScheme.authenticate(new UsernamePasswordCredentials(request.getUsername(), + request.getPassword()), "UTF-8", false)); } HttpResponse response = httpClient.execute(httpGet); HttpEntity httpEntity = response.getEntity(); @@ -67,8 +71,16 @@ public class HttpDownloader extends Downloader { Log.d(TAG, "Response code is " + responseCode); if (responseCode != HttpURLConnection.HTTP_OK || httpEntity == null) { - onFail(DownloadError.ERROR_HTTP_DATA_ERROR, - String.valueOf(responseCode)); + final DownloadError error; + final String details; + if (responseCode == HttpURLConnection.HTTP_UNAUTHORIZED) { + error = DownloadError.ERROR_UNAUTHORIZED; + details = String.valueOf(responseCode); + } else { + error = DownloadError.ERROR_HTTP_DATA_ERROR; + details = String.valueOf(responseCode); + } + onFail(error, details); return; } @@ -132,7 +144,8 @@ public class HttpDownloader extends Downloader { "Download completed but size: " + request.getSoFar() + " does not equal expected size " + - request.getSize()); + request.getSize() + ); return; } onSuccess(); |