Class CoverHttp<C extends CoverHttp<?>>

java.lang.Object
org.miaixz.bus.http.plugin.httpv.CoverHttp<C>
All Implemented Interfaces:
Cancelable
Direct Known Subclasses:
CoverCall.Client, CoverHttp.Async, CoverHttp.Sync

public abstract class CoverHttp<C extends CoverHttp<?>> extends Object implements Cancelable
Since:
Java 17+
Author:
Kimi Liu
  • Field Details

    • httpv

      public Httpv httpv
    • nothrow

      public boolean nothrow
    • nextOnIO

      public boolean nextOnIO
    • skipPreproc

      public boolean skipPreproc
    • skipSerialPreproc

      public boolean skipSerialPreproc
  • Constructor Details

    • CoverHttp

      public CoverHttp(Httpv httpv, String url)
  • Method Details

    • getUrl

      public String getUrl()
      获取请求任务的URL地址
      Returns:
      URL地址
    • getTag

      public String getTag()
      获取请求任务的标签
      Returns:
      标签
    • getBodyType

      public String getBodyType()
    • isTagged

      public boolean isTagged(String tag)
      标签匹配 判断任务标签与指定的标签是否匹配(包含指定的标签)
      Parameters:
      tag - 标签
      Returns:
      是否匹配
    • getHeaders

      public Map<String,String> getHeaders()
      获取请求任务的头信息
      Returns:
      头信息
    • getBound

      public Object getBound()
      获得被绑定的对象
      Returns:
      Object
    • nothrow

      public C nothrow()
      设置在发生异常时不向上抛出,设置后: 异步请求可以在异常回调内捕获异常,同步请求在返回结果中找到该异常
      Returns:
      this 实例
    • skipPreproc

      public C skipPreproc()
      指定该请求跳过任何预处理器(包括串行和并行)
      Returns:
      this 实例
    • skipSerialPreproc

      public C skipSerialPreproc()
      指定该请求跳过任何串行预处理器
      Returns:
      this 实例
    • tag

      public C tag(String tag)
      Parameters:
      tag - 标签
      Returns:
      this 实例 为请求任务添加标签
    • charset

      public C charset(Charset charset)
      Parameters:
      charset - 编码格式
      Returns:
      CoverHttp 实例 设置该请求的编码格式
    • bodyType

      public C bodyType(String type)
      Parameters:
      type - 请求类型
      Returns:
      CoverHttp 实例 设置请求体的类型,如:form、json、xml、protobuf 等
    • nextOnIO

      public C nextOnIO()
      下一个回调在IO线程执行
      Returns:
      this 实例
    • bind

      public C bind(Object object)
      绑定一个对象
      Parameters:
      object - 对象
      Returns:
      this 实例
    • addHeader

      public C addHeader(String name, String value)
      添加请求头
      Parameters:
      name - 请求头名
      value - 请求头值
      Returns:
      this 实例
    • addHeader

      public C addHeader(Map<String,String> headers)
      添加请求头
      Parameters:
      headers - 请求头集合
      Returns:
      this 实例
    • setRange

      public C setRange(long rangeStart)
      设置Range头信息 表示接收报文体时跳过的字节数,用于断点续传
      Parameters:
      rangeStart - 表示从 rangeStart 个字节处开始接收,通常是已经下载的字节数,即上次的断点)
      Returns:
      this 实例
    • setRange

      public C setRange(long rangeStart, long rangeEnd)
      设置Range头信息 设置接收报文体时接收的范围,用于分块下载
      Parameters:
      rangeStart - 表示从 rangeStart 个字节处开始接收
      rangeEnd - 表示接收到 rangeEnd 个字节处
      Returns:
      this 实例
    • setOnProcess

      public C setOnProcess(Callback<Progress> onProcess)
      设置报文体发送进度回调
      Parameters:
      onProcess - 进度回调函数
      Returns:
      this 实例
    • stepBytes

      public C stepBytes(long stepBytes)
      设置进度回调的步进字节,默认 8K(8192) 表示每接收 stepBytes 个字节,执行一次进度回调
      Parameters:
      stepBytes - 步进字节
      Returns:
      this 实例
    • stepRate

      public C stepRate(double stepRate)
      设置进度回调的步进比例 表示每接收 stepRate 比例,执行一次进度回调
      Parameters:
      stepRate - 步进比例
      Returns:
      this 实例
    • addPathPara

      public C addPathPara(String name, Object value)
      路径参数:替换URL里的{name}
      Parameters:
      name - 参数名
      value - 参数值
      Returns:
      this 实例
    • addPathPara

      public C addPathPara(Map<String,?> params)
      路径参数:替换URL里的{name}
      Parameters:
      params - 参数集合
      Returns:
      this 实例
    • addUrlPara

      public C addUrlPara(String name, Object value)
      URL参数:拼接在URL后的参数
      Parameters:
      name - 参数名
      value - 参数值
      Returns:
      this 实例
    • addUrlPara

      public C addUrlPara(Map<String,?> params)
      URL参数:拼接在URL后的参数
      Parameters:
      params - 参数集合
      Returns:
      this 实例
    • addBodyPara

      public C addBodyPara(String name, Object value)
      Body参数:放在Body里的参数
      Parameters:
      name - 参数名
      value - 参数值
      Returns:
      this 实例
    • addBodyPara

      public C addBodyPara(Map<String,?> params)
      Body参数:放在Body里的参数
      Parameters:
      params - 参数集合
      Returns:
      this 实例
    • setBodyPara

      public C setBodyPara(Object body)
      设置 json 请求体
      Parameters:
      body - 请求体,字节数组、字符串 或 Java对象(由 MsgConvertor 来序列化)
      Returns:
      this 实例
    • addFilePara

      public C addFilePara(String name, String filePath)
      添加文件参数
      Parameters:
      name - 参数名
      filePath - 文件路径
      Returns:
      this 实例
    • addFilePara

      public C addFilePara(String name, File file)
      添加文件参数
      Parameters:
      name - 参数名
      file - 文件
      Returns:
      this 实例
    • addFilePara

      public C addFilePara(String name, String type, byte[] content)
      添加文件参数
      Parameters:
      name - 参数名
      type - 文件类型: 如 png、jpg、jpeg 等
      content - 文件内容
      Returns:
      this 实例
    • addFilePara

      public C addFilePara(String name, String type, String fileName, byte[] content)
      添加文件参数
      Parameters:
      name - 参数名
      type - 文件类型: 如 png、jpg、jpeg 等
      fileName - 文件名
      content - 文件内容
      Returns:
      this 实例
    • cancel

      public boolean cancel()
      Description copied from interface: Cancelable
      取消
      Specified by:
      cancel in interface Cancelable
      Returns:
      取消是否成功
    • registeTagTask

      protected void registeTagTask(Cancelable canceler)
    • removeTagTask

      protected void removeTagTask()
    • prepareCall

      protected NewCall prepareCall(String method)
    • prepareRequest

      protected Request prepareRequest(String method)
    • toState

      public CoverResult.State toState(IOException e)
    • assertNotConflict

      protected void assertNotConflict(boolean bodyCantUsed)
    • timeoutAwait

      protected boolean timeoutAwait(CountDownLatch latch)
      Parameters:
      latch - CountDownLatch
      Returns:
      是否未超时:false 表示已超时
    • timeoutResult

      protected CoverResult timeoutResult()
    • charset

      public Charset charset(Response response)