diff options
author | Jeff Sharkey <jsharkey@android.com> | 2013-01-10 11:12:52 -0800 |
---|---|---|
committer | Jeff Sharkey <jsharkey@android.com> | 2013-01-10 11:13:23 -0800 |
commit | 89afc754d46a8574a9e014c7670746668de9f9b3 (patch) | |
tree | fb4c46b31ac362bb0d8c5a98560cd1865b764615 /src/com/android/providers/downloads/DownloadThread.java | |
parent | 0de55602ec6d350548248feddc68c91b29326eff (diff) | |
download | android_packages_providers_DownloadProvider-89afc754d46a8574a9e014c7670746668de9f9b3.tar.gz android_packages_providers_DownloadProvider-89afc754d46a8574a9e014c7670746668de9f9b3.tar.bz2 android_packages_providers_DownloadProvider-89afc754d46a8574a9e014c7670746668de9f9b3.zip |
Only add one User-Agent header.
Also include more details when reporting HTTP error codes.
Bug: 7966393
Change-Id: I251b1ec7c827693817391b6e9fb8b0cab995395e
Diffstat (limited to 'src/com/android/providers/downloads/DownloadThread.java')
-rw-r--r-- | src/com/android/providers/downloads/DownloadThread.java | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/src/com/android/providers/downloads/DownloadThread.java b/src/com/android/providers/downloads/DownloadThread.java index dc2ef571..c77224a7 100644 --- a/src/com/android/providers/downloads/DownloadThread.java +++ b/src/com/android/providers/downloads/DownloadThread.java @@ -306,7 +306,8 @@ public class DownloadThread extends Thread { case HTTP_PRECON_FAILED: // TODO: probably means our etag precondition was // changed; flush and retry again - StopRequestException.throwUnhandledHttpError(responseCode); + StopRequestException.throwUnhandledHttpError( + responseCode, conn.getResponseMessage()); case HTTP_UNAVAILABLE: parseRetryAfterHeaders(state, conn); @@ -320,7 +321,8 @@ public class DownloadThread extends Thread { throw new StopRequestException(STATUS_WAITING_TO_RETRY, "Internal error"); default: - StopRequestException.throwUnhandledHttpError(responseCode); + StopRequestException.throwUnhandledHttpError( + responseCode, conn.getResponseMessage()); } } catch (IOException e) { // Trouble with low-level sockets @@ -791,12 +793,15 @@ public class DownloadThread extends Thread { * Add custom headers for this download to the HTTP request. */ private void addRequestHeaders(State state, HttpURLConnection conn) { - conn.addRequestProperty("User-Agent", userAgent()); - for (Pair<String, String> header : mInfo.getHeaders()) { conn.addRequestProperty(header.first, header.second); } + // Only splice in user agent when not already defined + if (conn.getRequestProperty("User-Agent") == null) { + conn.addRequestProperty("User-Agent", userAgent()); + } + if (state.mContinuingDownload) { if (state.mHeaderETag != null) { conn.addRequestProperty("If-Match", state.mHeaderETag); |