美文网首页
iOS中断点续传的问题

iOS中断点续传的问题

作者: 小吖朱 | 来源:发表于2017-02-11 09:34 被阅读0次

    如果我们要实现http断点续传,关键地方就是在httprequest中加入“Range”头。

    比如说我们要上传的文件大小是500 bytes。
    那么我们应该怎么去写这个断点续传的问题呢!

    //设置Range头,值:bytes=x-y;x:开始字节,y:结束字节,不指定则为文件末尾
    // 这就是 我们的文件500bytes - 上传的进度 然后当网络连接的时候我们直接从这个位置开始继续上传!
    [request addValue:@"bytes=500-" forHTTPHeaderField:@"Range"];
    
    但是我们也会遇到一些不一样的问题,如果我们的服务器支持我们断点续传,那就好办。如果服务器不支持断点续传的话我们就需要另开途径了
    下面介绍一下Range:头域

    Range头域可以请求实体的一个或者多个子范围。

    表示头500个字节:bytes=0-499
    
    表示第二个500字节:bytes=500-999
    
    表示最后500个字节:bytes=-500
    
    表示500字节以后的范围:bytes=500-
    
    第一个和最后一个字节:bytes=0-0,-1
    
    同时指定几个范围:bytes=500-600,601-999
    
    
    但是服务器可以忽略此请求头,如果无条件GET包含Range请求头,响应会以状态码206(PartialContent)返回而不是以200(OK)。

    注意:如果用户的请求中含有range ,则服务器的相应代码为206。
    206 - Partial Content 客户发送了一个带有Range头的GET请求,服务器完成了它(HTTP 1.1新)。

    相关文章

      网友评论

          本文标题:iOS中断点续传的问题

          本文链接:https://www.haomeiwen.com/subject/lvnnittx.html