类 HttpRange

java.lang.Object
cn.taketoday.http.HttpRange
直接已知子类:
HttpRange.ByteRange, HttpRange.SuffixByteRange

public abstract class HttpRange extends Object
Represents an HTTP (byte) range for use with the HTTP "Range" header.
从以下版本开始:
4.0
作者:
Arjen Poutsma, Juergen Hoeller, TODAY 2021/11/6 23:43
另请参阅:
  • 嵌套类概要

    嵌套类
    修饰符和类型
    说明
    private static class 
    Represents an HTTP/1.1 byte range, with a first and optional last position.
    private static class 
    Represents an HTTP/1.1 suffix byte range, with a number of suffix bytes.
  • 字段概要

    字段
    修饰符和类型
    字段
    说明
    private static final String
     
    private static final int
    Maximum ranges per request.
  • 构造器概要

    构造器
    构造器
    说明
     
  • 方法概要

    修饰符和类型
    方法
    说明
    static HttpRange
    createByteRange(long firstBytePos)
    Create an HttpRange from the given position to the end.
    static HttpRange
    createByteRange(long firstBytePos, long lastBytePos)
    Create a HttpRange from the given fist to last position.
    static HttpRange
    createSuffixRange(long suffixLength)
    Create an HttpRange that ranges over the last given number of bytes.
    private static long
    getLengthFor(cn.taketoday.core.io.Resource resource)
     
    abstract long
    getRangeEnd(long length)
    Return the end of the range (inclusive) given the total length of a representation.
    abstract long
    getRangeStart(long length)
    Return the start of the range given the total length of a representation.
    private static HttpRange
     
    static List<HttpRange>
    Parse the given, comma-separated string into a list of HttpRange objects.
    cn.taketoday.core.io.ResourceRegion
    toResourceRegion(cn.taketoday.core.io.Resource resource)
    Turn a Resource into a ResourceRegion using the range information contained in the current HttpRange.
    static List<cn.taketoday.core.io.ResourceRegion>
    toResourceRegions(List<HttpRange> ranges, cn.taketoday.core.io.Resource resource)
    Convert each HttpRange into a ResourceRegion, selecting the appropriate segment of the given Resource using HTTP Range information.
    static String
    Return a string representation of the given list of HttpRange objects.

    从类继承的方法 java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • 字段详细资料

    • MAX_RANGES

      private static final int MAX_RANGES
      Maximum ranges per request.
      另请参阅:
    • BYTE_RANGE_PREFIX

      private static final String BYTE_RANGE_PREFIX
      另请参阅:
  • 构造器详细资料

    • HttpRange

      public HttpRange()
  • 方法详细资料

    • toResourceRegion

      public cn.taketoday.core.io.ResourceRegion toResourceRegion(cn.taketoday.core.io.Resource resource)
      Turn a Resource into a ResourceRegion using the range information contained in the current HttpRange.
      参数:
      resource - the Resource to select the region from
      返回:
      the selected region of the given Resource
    • getRangeStart

      public abstract long getRangeStart(long length)
      Return the start of the range given the total length of a representation.
      参数:
      length - the length of the representation
      返回:
      the start of this range for the representation
    • getRangeEnd

      public abstract long getRangeEnd(long length)
      Return the end of the range (inclusive) given the total length of a representation.
      参数:
      length - the length of the representation
      返回:
      the end of the range for the representation
    • createByteRange

      public static HttpRange createByteRange(long firstBytePos)
      Create an HttpRange from the given position to the end.
      参数:
      firstBytePos - the first byte position
      返回:
      a byte range that ranges from firstPos till the end
      另请参阅:
    • createByteRange

      public static HttpRange createByteRange(long firstBytePos, long lastBytePos)
      Create a HttpRange from the given fist to last position.
      参数:
      firstBytePos - the first byte position
      lastBytePos - the last byte position
      返回:
      a byte range that ranges from firstPos till lastPos
      另请参阅:
    • createSuffixRange

      public static HttpRange createSuffixRange(long suffixLength)
      Create an HttpRange that ranges over the last given number of bytes.
      参数:
      suffixLength - the number of bytes for the range
      返回:
      a byte range that ranges over the last suffixLength number of bytes
      另请参阅:
    • parseRanges

      public static List<HttpRange> parseRanges(@Nullable String ranges)
      Parse the given, comma-separated string into a list of HttpRange objects.

      This method can be used to parse an Range header.

      参数:
      ranges - the string to parse
      返回:
      the list of ranges
      抛出:
      IllegalArgumentException - if the string cannot be parsed or if the number of ranges is greater than 100
    • parseRange

      private static HttpRange parseRange(String range)
    • toResourceRegions

      public static List<cn.taketoday.core.io.ResourceRegion> toResourceRegions(List<HttpRange> ranges, cn.taketoday.core.io.Resource resource)
      Convert each HttpRange into a ResourceRegion, selecting the appropriate segment of the given Resource using HTTP Range information.
      参数:
      ranges - the list of ranges
      resource - the resource to select the regions from
      返回:
      the list of regions for the given resource
      抛出:
      IllegalArgumentException - if the sum of all ranges exceeds the resource length
    • getLengthFor

      private static long getLengthFor(cn.taketoday.core.io.Resource resource)
    • toString

      public static String toString(Collection<HttpRange> ranges)
      Return a string representation of the given list of HttpRange objects.

      This method can be used to for an Range header.

      参数:
      ranges - the ranges to create a string of
      返回:
      the string representation