模块 okhttps

类 HttpTask<C extends HttpTask<C>>

java.lang.Object
com.ejlchina.okhttps.HttpTask<C>
所有已实现的接口:
Cancelable
直接已知子类:
AHttpTask, SHttpTask, WHttpTask

public abstract class HttpTask<C extends HttpTask<C>> extends Object implements Cancelable
Created by 周旭(Troy.Zhou) on 2020/3/11.
  • 字段详细资料

    • httpClient

      protected final AbstractHttpClient httpClient
    • nothrow

      protected boolean nothrow
    • nextOnIO

      protected boolean nextOnIO
    • skipPreproc

      protected boolean skipPreproc
    • skipSerialPreproc

      protected boolean skipSerialPreproc
  • 构造器详细资料

  • 方法详细资料

    • getUrl

      public String getUrl()
      获取请求任务的URL地址
      返回:
      URL地址
    • isWebsocket

      public boolean isWebsocket()
      返回:
      是否是 Websocket 通讯
    • isSyncHttp

      public boolean isSyncHttp()
      返回:
      是否是 同步 Http 请求
      从以下版本开始:
      2.2.0
    • isAsyncHttp

      public boolean isAsyncHttp()
      返回:
      是否是 异步 Http 请求
      从以下版本开始:
      2.2.0
    • getTag

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

      public String getBodyType()
    • isTagged

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

      public com.ejlchina.data.ListMap<String> getHeaders()
      获取请求任务的头信息
      返回:
      头信息
    • getPathParas

      public com.ejlchina.data.ListMap<Object> getPathParas()
      返回:
      路径参数
      从以下版本开始:
      2.4.0
    • getUrlParas

      public com.ejlchina.data.ListMap<Object> getUrlParas()
      返回:
      URL参数(查询参数)
      从以下版本开始:
      2.4.0
    • getBodyParas

      public com.ejlchina.data.ListMap<Object> getBodyParas()
      返回:
      报文体参数
      从以下版本开始:
      2.4.0
    • getFileParas

      public com.ejlchina.data.ListMap<FilePara> getFileParas()
      返回:
      文件参数
      从以下版本开始:
      2.4.0
    • getRequestBody

      public Object getRequestBody()
      返回:
      报文体
      从以下版本开始:
      2.4.0
    • getBound

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

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

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

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

      public C tag(String tag)
      参数:
      tag - 标签
      返回:
      HttpTask 实例
      从以下版本开始:
      2.0.0.RC 为请求任务添加标签
    • charset

      public C charset(Charset charset)
      参数:
      charset - 编码格式
      返回:
      HttpTask 实例
      从以下版本开始:
      2.0.0 设置该请求的编码格式
    • bodyType

      public C bodyType(String type)
      参数:
      type - 请求类型
      返回:
      HttpTask 实例
      从以下版本开始:
      2.0.0 设置请求体的类型,如:form、json、xml、protobuf 等
    • nextOnIO

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

      public C bind(Object object)
      绑定一个对象
      参数:
      object - 对象
      返回:
      HttpTask 实例
    • basicAuth

      public C basicAuth(String username, String password)
      Basic Auth 认证
      参数:
      username - 用户名
      password - 密码
      返回:
      HttpTask 实例
      从以下版本开始:
      v3.5.0
    • bearerAuth

      public C bearerAuth(String token)
      Bearer Auth 认证
      参数:
      token - 令牌
      返回:
      HttpTask 实例
      从以下版本开始:
      v3.5.0
    • addHeader

      public C addHeader(String name, String value)
      添加请求头
      参数:
      name - 请求头名
      value - 请求头值
      返回:
      HttpTask 实例
    • addHeader

      public C addHeader(Map<String,String> headers)
      添加请求头
      参数:
      headers - 请求头集合
      返回:
      HttpTask 实例
    • setRange

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

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

      public C setOnProcess(Consumer<Process> onProcess)
      设置报文体发送进度回调
      参数:
      onProcess - 进度回调函数
      返回:
      HttpTask 实例
    • stepBytes

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

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

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

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

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

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

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

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

      public C setBodyPara(Object body)
      设置 请求报文体
      参数:
      body - 请求报文体,可以是:
        byte[] - 字节数组(直接作为报文体) 
      String - 字符串(比如:JSON 字符串、键值对字符串,也是直接作为报文体)
      POJO - 普通 Java 数据对象(由 MsgConvertor 来序列化)
      InputStream - 输入流(v3.5.0 开始支持)
      返回:
      HttpTask 实例
    • addFilePara

      public C addFilePara(String name, String filePath)
      添加文件参数(以 multipart/form-data 形式上传)
      参数:
      name - 参数名
      filePath - 文件路径
      返回:
      HttpTask 实例
    • addFilePara

      public C addFilePara(String name, String type, String filePath)
      添加文件参数(以 multipart/form-data 形式上传)
      参数:
      name - 参数名
      type - 文件类型/扩展名: 如 txt、png、jpg、doc 等,参考 HTTP.Builder.getMediaTypes()
      filePath - 文件路径
      返回:
      HttpTask 实例
    • addFilePara

      public C addFilePara(String name, File file)
      添加文件参数(以 multipart/form-data 形式上传)
      参数:
      name - 参数名
      file - 文件
      返回:
      HttpTask 实例
    • addFilePara

      public C addFilePara(String name, String type, File file)
      添加文件参数(以 multipart/form-data 形式上传)
      参数:
      name - 参数名
      type - 文件类型/扩展名: 如 txt、png、jpg、doc 等
      file - 文件
      返回:
      HttpTask 实例
    • addFilePara

      public C addFilePara(String name, String type, byte[] content)
      添加文件参数(以 multipart/form-data 形式上传)
      参数:
      name - 参数名
      type - 文件类型/扩展名: 如 txt、png、jpg、doc 等
      content - 文件内容
      返回:
      HttpTask 实例
    • addFilePara

      public C addFilePara(String name, byte[] content, String fileName)
      添加文件参数(以 multipart/form-data 形式上传)
      参数:
      name - 参数名
      content - 文件内容
      fileName - 文件名: 如 xxx.txt、xxx.png、xxx.doc 等
      返回:
      HttpTask 实例
      从以下版本开始:
      v3.5.1
    • addFilePara

      public C addFilePara(String name, String type, String fileName, byte[] content)
      添加文件参数(以 multipart/form-data 形式上传)
      参数:
      name - 参数名
      type - 文件类型/扩展名: 如 txt、png、jpg、doc 等
      fileName - 文件名
      content - 文件内容
      返回:
      HttpTask 实例
    • addFilePara

      public C addFilePara(String name, String type, InputStream stream)
      添加文件参数(以 multipart/form-data 形式上传)
      参数:
      name - 参数名
      type - 文件类型/扩展名: 如 txt、png、jpg、doc 等
      stream - 文件输入流
      返回:
      HttpTask 实例
      从以下版本开始:
      v3.5.0
    • addFilePara

      public C addFilePara(String name, InputStream stream, String fileName)
      添加文件参数(以 multipart/form-data 形式上传)
      参数:
      name - 参数名
      stream - 文件输入流
      fileName - 文件名: 如 xxx.txt、xxx.png、xxx.doc 等
      返回:
      HttpTask 实例
      从以下版本开始:
      v3.5.1
    • addFilePara

      public C addFilePara(String name, String type, String fileName, InputStream stream)
      添加文件参数(以 multipart/form-data 形式上传)
      参数:
      name - 参数名
      type - 文件类型/扩展名: 如 txt、png、jpg、doc 等
      fileName - 文件名
      stream - 文件输入流
      返回:
      HttpTask 实例
      从以下版本开始:
      v3.5.0
    • boundary

      public String boundary()
      返回:
      MultipartBody 的边界符
      从以下版本开始:
      v3.4.2
    • boundary

      public C boundary(String boundary)
      设置 MultipartBody 的边界符
      参数:
      boundary - 边界符
      返回:
      this
      从以下版本开始:
      v3.4.2
    • cancel

      public boolean cancel()
      从接口复制的说明: Cancelable
      取消
      指定者:
      cancel 在接口中 Cancelable
      返回:
      取消是否成功
    • registeTagTask

      protected void registeTagTask(Cancelable canceler)
    • removeTagTask

      protected void removeTagTask()
    • prepareCall

      protected okhttp3.Call prepareCall(String method)
    • prepareRequest

      protected okhttp3.Request prepareRequest(String method)
    • toState

      protected HttpResult.State toState(IOException e)
    • assertNotConflict

      protected void assertNotConflict(boolean bodyCantUsed)
      参数冲突校验
      参数:
      bodyCantUsed - 报文体是否不可用
    • timeoutAwait

      protected boolean timeoutAwait(CountDownLatch latch)
      参数:
      latch - CountDownLatch
      返回:
      true 表示已超时:false 表示未超时
    • timeoutResult

      protected HttpResult timeoutResult()
    • charset

      public Charset charset(okhttp3.Response response)
    • execute

      protected void execute(Runnable command, boolean onIo)
    • httpClient

      public AbstractHttpClient httpClient()