Handle 403 Forbidden
This commit is contained in:
parent
93eba24d08
commit
989f2e1c58
|
@ -204,8 +204,10 @@ public class DownloadService extends Service {
|
|||
FeedItem item = media.getItem();
|
||||
boolean httpNotFound = status.getReason() == DownloadError.ERROR_HTTP_DATA_ERROR
|
||||
&& String.valueOf(HttpURLConnection.HTTP_NOT_FOUND).equals(status.getReasonDetailed());
|
||||
boolean forbidden = status.getReason() == DownloadError.ERROR_FORBIDDEN
|
||||
&& String.valueOf(HttpURLConnection.HTTP_FORBIDDEN).equals(status.getReasonDetailed());
|
||||
boolean notEnoughSpace = status.getReason() == DownloadError.ERROR_NOT_ENOUGH_SPACE;
|
||||
if (httpNotFound || notEnoughSpace) {
|
||||
if (httpNotFound || forbidden || notEnoughSpace) {
|
||||
DBWriter.saveFeedItemAutoDownloadFailed(item).get();
|
||||
}
|
||||
// to make lists reload the failed item, we fake an item update
|
||||
|
|
|
@ -124,14 +124,6 @@ public class HttpDownloader extends Downloader {
|
|||
}
|
||||
}
|
||||
|
||||
if(request.getFeedfileType() == FeedMedia.FEEDFILETYPE_FEEDMEDIA) {
|
||||
String contentType = response.header("Content-Type");
|
||||
if(!contentType.startsWith("audio/") && !contentType.startsWith("video/")) {
|
||||
onFail(DownloadError.ERROR_FILE_TYPE, null);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
responseBody = response.body();
|
||||
String contentEncodingHeader = response.header("Content-Encoding");
|
||||
boolean isGzip = false;
|
||||
|
@ -174,6 +166,9 @@ public class HttpDownloader extends Downloader {
|
|||
if (response.code() == HttpURLConnection.HTTP_UNAUTHORIZED) {
|
||||
error = DownloadError.ERROR_UNAUTHORIZED;
|
||||
details = String.valueOf(response.code());
|
||||
} else if(response.code() == HttpURLConnection.HTTP_FORBIDDEN) {
|
||||
error = DownloadError.ERROR_FORBIDDEN;
|
||||
details = String.valueOf(response.code());
|
||||
} else {
|
||||
error = DownloadError.ERROR_HTTP_DATA_ERROR;
|
||||
details = String.valueOf(response.code());
|
||||
|
@ -187,6 +182,14 @@ public class HttpDownloader extends Downloader {
|
|||
return;
|
||||
}
|
||||
|
||||
if(request.getFeedfileType() == FeedMedia.FEEDFILETYPE_FEEDMEDIA) {
|
||||
String contentType = response.header("Content-Type");
|
||||
if(!contentType.startsWith("audio/") && !contentType.startsWith("video/")) {
|
||||
onFail(DownloadError.ERROR_FILE_TYPE, null);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
connection = new BufferedInputStream(responseBody.byteStream());
|
||||
|
||||
String contentRangeHeader = (fileExists) ? response.header("Content-Range") : null;
|
||||
|
|
|
@ -20,7 +20,9 @@ public enum DownloadError {
|
|||
ERROR_REQUEST_ERROR(12, R.string.download_error_request_error),
|
||||
ERROR_DB_ACCESS_ERROR(13, R.string.download_error_db_access),
|
||||
ERROR_UNAUTHORIZED(14, R.string.download_error_unauthorized),
|
||||
ERROR_FILE_TYPE(15, R.string.download_error_file_type_type);
|
||||
ERROR_FILE_TYPE(15, R.string.download_error_file_type_type),
|
||||
ERROR_FORBIDDEN(16, R.string.download_error_forbidden);
|
||||
|
||||
|
||||
private final int code;
|
||||
private final int resId;
|
||||
|
|
|
@ -177,6 +177,7 @@
|
|||
<string name="download_error_unknown_host">Unknown Host</string>
|
||||
<string name="download_error_unauthorized">Authentication Error</string>
|
||||
<string name="download_error_file_type_type">File Type Error</string>
|
||||
<string name="download_error_forbidden">Forbidden</string>
|
||||
<string name="cancel_all_downloads_label">Cancel all downloads</string>
|
||||
<string name="download_canceled_msg">Download canceled</string>
|
||||
<string name="download_canceled_autodownload_enabled_msg">Download canceled\nDisabled <i>Auto Download</i> for this item</string>
|
||||
|
|
Loading…
Reference in New Issue