Module bus.http

Class Builder

java.lang.Object
org.miaixz.bus.http.Builder

public class Builder extends Object
HTTP 相关的实用工具类

提供处理 HTTP 请求和响应的工具方法,包括数据解析、编码、集合操作、日期格式化等。

Since:
Java 17+
Author:
Kimi Liu
  • Field Details

    • MAX_DATE

      public static final long MAX_DATE
      最大日期值(9999年12月31日)
      See Also:
    • EMPTY_HEADERS

      public static final Headers EMPTY_HEADERS
      空头部
    • EMPTY_RESPONSE

      public static final ResponseBody EMPTY_RESPONSE
      空响应体
    • UTC

      public static final TimeZone UTC
      GMT 时区
    • NATURAL_ORDER

      public static final Comparator<String> NATURAL_ORDER
      自然顺序比较器
    • QUOTED_STRING_DELIMITERS

      public static final org.miaixz.bus.core.io.ByteString QUOTED_STRING_DELIMITERS
      引号字符串分隔符
    • TOKEN_DELIMITERS

      public static final org.miaixz.bus.core.io.ByteString TOKEN_DELIMITERS
      令牌分隔符
    • BROWSER_COMPATIBLE_DATE_FORMAT_STRINGS

      public static final String[] BROWSER_COMPATIBLE_DATE_FORMAT_STRINGS
      浏览器兼容的日期格式
    • BROWSER_COMPATIBLE_DATE_FORMATS

      public static final DateFormat[] BROWSER_COMPATIBLE_DATE_FORMATS
      浏览器兼容的日期格式器
    • CONNECT

      public static final String CONNECT
      CONNECT 命令
      See Also:
    • CONNECTED

      public static final String CONNECTED
      CONNECTED 命令
      See Also:
    • SEND

      public static final String SEND
      SEND 命令
      See Also:
    • MESSAGE

      public static final String MESSAGE
      MESSAGE 命令
      See Also:
    • SUBSCRIBE

      public static final String SUBSCRIBE
      SUBSCRIBE 命令
      See Also:
    • UNSUBSCRIBE

      public static final String UNSUBSCRIBE
      UNSUBSCRIBE 命令
      See Also:
    • ACK

      public static final String ACK
      ACK 命令
      See Also:
    • UNKNOWN

      public static final String UNKNOWN
      UNKNOWN 命令
      See Also:
    • ERROR

      public static final String ERROR
      ERROR 命令
      See Also:
  • Constructor Details

    • Builder

      public Builder()
      构造函数
  • Method Details

    • addSuppressedIfPossible

      public static void addSuppressedIfPossible(Throwable e, Throwable suppressed)
      添加抑制的异常
      Parameters:
      e - 主异常
      suppressed - 抑制的异常
    • checkOffsetAndCount

      public static void checkOffsetAndCount(long arrayLength, long offset, long count)
      检查数组偏移和计数
      Parameters:
      arrayLength - 数组长度
      offset - 偏移量
      count - 计数
      Throws:
      ArrayIndexOutOfBoundsException - 如果参数无效
    • discard

      public static boolean discard(org.miaixz.bus.core.io.source.Source source, int timeout, TimeUnit timeUnit)
      尝试耗尽数据源
      Parameters:
      source - 数据源
      timeout - 超时时间
      timeUnit - 时间单位
      Returns:
      true 如果成功耗尽
    • skipAll

      public static boolean skipAll(org.miaixz.bus.core.io.source.Source source, int duration, TimeUnit timeUnit) throws IOException
      读取数据源直到耗尽或超时
      Parameters:
      source - 数据源
      duration - 超时时间
      timeUnit - 时间单位
      Returns:
      true 如果成功耗尽
      Throws:
      IOException - 如果读取失败
    • immutableList

      public static <T> List<T> immutableList(List<T> list)
      创建不可修改的列表
      Type Parameters:
      T - 列表元素类型
      Parameters:
      list - 原始列表
      Returns:
      不可修改的列表
    • immutableMap

      public static <K, V> Map<K,V> immutableMap(Map<K,V> map)
      创建不可修改的映射
      Type Parameters:
      K - 键类型
      V - 值类型
      Parameters:
      map - 原始映射
      Returns:
      不可修改的映射
    • immutableList

      public static <T> List<T> immutableList(T... elements)
      创建不可修改的列表
      Type Parameters:
      T - 元素类型
      Parameters:
      elements - 元素数组
      Returns:
      不可修改的列表
    • threadFactory

      public static ThreadFactory threadFactory(String name, boolean daemon)
      创建线程工厂
      Parameters:
      name - 线程名称
      daemon - 是否为守护线程
      Returns:
      线程工厂
    • intersect

      public static String[] intersect(Comparator<? super String> comparator, String[] first, String[] second)
      获取两个字符串数组的交集
      Parameters:
      comparator - 比较器
      first - 第一个数组
      second - 第二个数组
      Returns:
      交集数组
    • nonEmptyIntersection

      public static boolean nonEmptyIntersection(Comparator<String> comparator, String[] first, String[] second)
      检查两个字符串数组是否存在交集
      Parameters:
      comparator - 比较器
      first - 第一个数组
      second - 第二个数组
      Returns:
      true 如果存在交集
    • hostHeader

      public static String hostHeader(UnoUrl url, boolean includeDefaultPort)
      生成主机头部
      Parameters:
      url - URL
      includeDefaultPort - 是否包含默认端口
      Returns:
      主机头部字符串
    • indexOf

      public static int indexOf(Comparator<String> comparator, String[] array, String value)
      查找字符串在数组中的索引
      Parameters:
      comparator - 比较器
      array - 数组
      value - 值
      Returns:
      索引(不存在时为 -1)
    • concat

      public static String[] concat(String[] array, String value)
      拼接字符串到数组
      Parameters:
      array - 数组
      value - 值
      Returns:
      新数组
    • skipLeadingAsciiWhitespace

      public static int skipLeadingAsciiWhitespace(String input, int pos, int limit)
      跳过前导 ASCII 空白字符
      Parameters:
      input - 输入字符串
      pos - 起始位置
      limit - 结束位置
      Returns:
      非空白字符位置
    • skipTrailingAsciiWhitespace

      public static int skipTrailingAsciiWhitespace(String input, int pos, int limit)
      跳过尾部 ASCII 空白字符
      Parameters:
      input - 输入字符串
      pos - 起始位置
      limit - 结束位置
      Returns:
      非空白字符位置
    • trimSubstring

      public static String trimSubstring(String string, int pos, int limit)
      修剪字符串
      Parameters:
      string - 输入字符串
      pos - 起始位置
      limit - 结束位置
      Returns:
      修剪后的字符串
    • delimiterOffset

      public static int delimiterOffset(String input, int pos, int limit, String delimiters)
      查找分隔符位置
      Parameters:
      input - 输入字符串
      pos - 起始位置
      limit - 结束位置
      delimiters - 分隔符集合
      Returns:
      分隔符位置
    • delimiterOffset

      public static int delimiterOffset(String input, int pos, int limit, char delimiter)
      查找单个分隔符位置
      Parameters:
      input - 输入字符串
      pos - 起始位置
      limit - 结束位置
      delimiter - 分隔符
      Returns:
      分隔符位置
    • canonicalizeHost

      public static String canonicalizeHost(String host)
      规范化主机名
      Parameters:
      host - 主机名
      Returns:
      规范化主机名(无效时为 null)
    • indexOfControlOrNonAscii

      public static int indexOfControlOrNonAscii(String input)
      查找控制字符或非 ASCII 字符的索引
      Parameters:
      input - 输入字符串
      Returns:
      索引(不存在时为 -1)
    • verifyAsIpAddress

      public static boolean verifyAsIpAddress(String host)
      检查是否为 IP 地址
      Parameters:
      host - 主机名
      Returns:
      true 如果是 IP 地址
    • bomAwareCharset

      public static Charset bomAwareCharset(org.miaixz.bus.core.io.source.BufferSource source, Charset charset) throws IOException
      根据 BOM 选择字符集
      Parameters:
      source - 数据源
      charset - 默认字符集
      Returns:
      字符集
      Throws:
      IOException - 如果读取失败
    • checkDuration

      public static int checkDuration(String name, long duration, TimeUnit unit)
      检查持续时间
      Parameters:
      name - 参数名称
      duration - 持续时间
      unit - 时间单位
      Returns:
      持续时间(毫秒)
      Throws:
      IllegalArgumentException - 如果参数无效
    • decodeHexDigit

      public static int decodeHexDigit(char c)
      解码十六进制字符
      Parameters:
      c - 字符
      Returns:
      解码值(无效时为 -1)
    • toHeaders

      public static Headers toHeaders(List<Http2Header> headerBlock)
      将 HTTP/2 头部列表转换为 Headers
      Parameters:
      headerBlock - HTTP/2 头部列表
      Returns:
      Headers 实例
    • toHeaderBlock

      public static List<Http2Header> toHeaderBlock(Headers headers)
      将 Headers 转换为 HTTP/2 头部列表
      Parameters:
      headers - Headers 实例
      Returns:
      HTTP/2 头部列表
    • sameConnection

      public static boolean sameConnection(UnoUrl a, UnoUrl b)
      检查两个 URL 是否可以复用连接
      Parameters:
      a - 第一个 URL
      b - 第二个 URL
      Returns:
      true 如果可以复用连接
    • parse

      public static Date parse(String value)
      解析日期字符串
      Parameters:
      value - 日期字符串
      Returns:
      日期对象(无效时为 null)
    • format

      public static String format(Date value)
      格式化日期
      Parameters:
      value - 日期对象
      Returns:
      日期字符串