Range请求 后的校验

话说,找了好久都没找到一个支持修改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;
  }
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值