Apache HttpClient get add a byte range header?

android, apache, java

Solution

I was able to get this working by adding the following line:

httpGet.addHeader("Range", "bytes=0-0");

Problem

Does anyone know of how to request byte ranges along with an HTTP request? I am looking to facilitate the resuming of downloads in our application by requesting a byte range of where the download left off and reading its InputStream from getContent(). I tried iterating over the headers but they are null. Source is below. ``` import java.io.IOException; import java.io.InputStream; import org.apache.http.Header; import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.client.ClientProtocolException; import org.apache.http.client.methods.HttpGet; import org.apache.http.impl.client.DefaultHttpClient; import android.util.Log; /** * @author Kevin Kowalewski * */ public class DownloadClient { DefaultHttpClient httpClient; HttpGet httpGet; HttpResponse httpResponse; HttpEntity httpEntity; InputStream httpInputStream; private static String LOG_TAG = DownloadClient.class.getName(); public DownloadClient(){ httpClient = new DefaultHttpClient(); httpGet = new HttpGet("http://cachefly.cachefly.net/100mb.test"); for (Header header : httpGet.getAllHeaders()){ Log.d(LOG_TAG, "--> Header: " + header); } Log.d(LOG_TAG, "--> Header size is: " + httpGet.getAllHeaders().length); try { httpResponse = httpClient.execute(httpGet); } catch (ClientProtocolException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } httpEntity = httpResponse.getEntity(); try { httpInputStream = httpEntity.getContent(); } catch (IllegalStateException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } Log.d(LOG_TAG, "--> StatusLine: " + httpResponse.getStatusLine()); } public void read(){ byte[] readBuffer = new byte[32]; try { while (httpInputStream.read(readBuffer) != -1){ try{Thread.sleep(100);}catch(Exception e){} //Log.d(LOG_TAG,"--> Read Bytes: " + new String(readBuffer)); }; } catch (IOException e) { e.printStackTrace(); } } public void shutdown(){ httpGet.abort(); httpClient.getConnectionManager().shutdown(); } ``` } Kevin

Original source