summaryrefslogtreecommitdiff
path: root/src/de/danoeh/antennapod/service/download/HttpDownloader.java
diff options
context:
space:
mode:
authordaniel oeh <daniel.oeh@gmail.com>2014-03-17 13:02:37 +0100
committerdaniel oeh <daniel.oeh@gmail.com>2014-03-17 13:02:37 +0100
commit3b5e83c74f17a318162f39a2004fe33207de1f10 (patch)
tree6ece845c5f5cbee56bfeec4d61ac08adb478b054 /src/de/danoeh/antennapod/service/download/HttpDownloader.java
parent6cb3a30307910b8f043af559607ae73a62e5a623 (diff)
downloadAntennaPod-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.java19
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();