话说,找了好久都没找到一个支持修改Header的http debug工具
请求
int fStartPos = 0;
String sProperty = "bytes=" + fStartPos + "-";
HttpUriRequest request = new HttpGet(url);
Header range = new BasicHeader("Range", sProperty);
if(request.containsHeader(range.getName())){
request.removeHeaders(range.getName());
}
request.addHeader(range );
HttpResponse response = new DefaultHttpClient().execute(request);
校验
private void checkRange(HttpResponse response){
Header[] acceptRange = response.getHeaders("Accept-Ranges");//标识服务器是否支持Range请求,如果返回可能表示支持,除非 Accept-Ranges: none
Header[] contentRange = response.getHeaders("Content-Range");// Range请求返回参数,如果服务器支持Range请求,这个参数不为null
boolean accept = acceptRange==null||acceptRange.length==0||!"none".equals(acceptRange[0].getValue());//如果参数为空,则默认可接受Range请求。如果参数不为空,则必须不能是'none'
boolean rangeParam = contentRange!=null&&contentRange.length!=0;// 这个contentRange header参数必须不能为null,才能代表这次属于正常range请求
if(accept&&rangeParam){
//Range请求
}else{
//正常请求 删除缓存文件
if(fStartPos!=0){
FileUtil.deleteDir(FileUtil.getDownloadTempFile(vo));
}
fStartPos = 0;
}
}