如何判断服务器端是否支持文件的分段下载

如何判断服务器端是否支持文件的分段下载

问题描述:

[code=java]
HttpGet httpGet=new HttpGet(downloadUrl);
HttpClient httpClient=new DefaultHttpClient();
HttpResponse httpResponse=httpClient.execute(httpGet);
if(httpResponse.getStatusLine().getStatusCode()==200){
HttpEntity entity=httpResponse.getEntity();
fileSize=(int)entity.getContentLength();
}

[/code]
可以获取文件的大小。
才能判断服务器是否支持文件的分段下载吗?

## 上面的二位都给我了提示,解析http响应报文的结构

1.使用connection进行读取字节范围的设置:

URLConnection conn = downloadUrl.openConnection();
        conn.setAllowUserInteraction(true);
        conn.setRequestProperty("Range", "bytes=" + startPos + "-" + endPos);
        System.out.println(Thread.currentThread().getName() + "  bytes="
                + startPos + "-" + endPos);

2.然后判断返回的http响应头的accept-ranges字段:

String messageString = conn.getHeaderField("Accept-Ranges");
if (!messageString.equals("bytes")) {
System.out.println("--------this server doesn't support ");
} else {
System.out.println("--------this server support");
}
注意一点,在用户没有设置conn.setRequestProperty("Range", "bytes=" + startPos + "-" + endPos);
System.out.println(Thread.currentThread().getName() + " bytes="
+ startPos + "-" + endPos);的时候,都会返回bytes;


注意判断http206,和http200,不要过于相信http206,多判断一些不会错。
参见http://www.cnblogs.com/ziyunfei/archive/2012/11/18/2775499.html

这是什么啊〈〉?看不懂啊。