From 224fc2eef8eb16b009c7c2b2b02978cb92412c5c Mon Sep 17 00:00:00 2001 From: Oliver Woodman Date: Mon, 12 Jan 2015 17:34:00 +0000 Subject: [PATCH] Omit range header if the range is 0-. Apparently some servers don't like it, and in general it's unnecessary to set the header for this case. --- .../android/exoplayer/upstream/HttpDataSource.java | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/library/src/main/java/com/google/android/exoplayer/upstream/HttpDataSource.java b/library/src/main/java/com/google/android/exoplayer/upstream/HttpDataSource.java index e479477561..fd2f345e4c 100644 --- a/library/src/main/java/com/google/android/exoplayer/upstream/HttpDataSource.java +++ b/library/src/main/java/com/google/android/exoplayer/upstream/HttpDataSource.java @@ -393,18 +393,22 @@ public class HttpDataSource implements DataSource { connection.setRequestProperty(property.getKey(), property.getValue()); } } + setRangeHeader(connection, dataSpec); connection.setRequestProperty("User-Agent", userAgent); - connection.setRequestProperty("Range", buildRangeHeader(dataSpec)); connection.connect(); return connection; } - private String buildRangeHeader(DataSpec dataSpec) { + private void setRangeHeader(HttpURLConnection connection, DataSpec dataSpec) { + if (dataSpec.position == 0 && dataSpec.length == C.LENGTH_UNBOUNDED) { + // Not required. + return; + } String rangeRequest = "bytes=" + dataSpec.position + "-"; if (dataSpec.length != C.LENGTH_UNBOUNDED) { rangeRequest += (dataSpec.position + dataSpec.length - 1); } - return rangeRequest; + connection.setRequestProperty("Range", rangeRequest); } private long getContentLength(HttpURLConnection connection) {