- java.lang.Object
-
- com.ejlchina.okhttps.HttpTask<C>
-
- 所有已实现的接口:
Cancelable
public abstract class HttpTask<C extends HttpTask<?>> extends Object implements Cancelable
Created by 周旭(Troy.Zhou) on 2020/3/11.
-
-
字段概要
字段 修饰符和类型 字段 说明 protected com.ejlchina.okhttps.internal.AbstractHttpClienthttpClientprotected booleannextOnIOprotected booleannothrowprotected booleanskipPreprocprotected booleanskipSerialPreproc
-
方法概要
所有方法 实例方法 具体方法 修饰符和类型 方法 说明 CaddBodyPara(String name, Object value)Body参数:放在Body里的参数CaddBodyPara(Map<String,?> params)Body参数:放在Body里的参数CaddFilePara(String name, File file)添加文件参数(以 multipart/form-data 形式上传)CaddFilePara(String name, String filePath)添加文件参数(以 multipart/form-data 形式上传)CaddFilePara(String name, String type, byte[] content)添加文件参数(以 multipart/form-data 形式上传)CaddFilePara(String name, String type, File file)添加文件参数(以 multipart/form-data 形式上传)CaddFilePara(String name, String type, String filePath)添加文件参数(以 multipart/form-data 形式上传)CaddFilePara(String name, String type, String fileName, byte[] content)添加文件参数(以 multipart/form-data 形式上传)CaddHeader(String name, String value)添加请求头CaddHeader(Map<String,String> headers)添加请求头CaddPathPara(String name, Object value)路径参数:替换URL里的{name}CaddPathPara(Map<String,?> params)路径参数:替换URL里的{name}CaddUrlPara(String name, Object value)URL参数:拼接在URL后的参数CaddUrlPara(Map<String,?> params)URL参数:拼接在URL后的参数protected voidassertNotConflict(boolean bodyCantUsed)参数冲突校验Cbind(Object object)绑定一个对象CbodyType(String type)booleancancel()取消Ccharset(Charset charset)Charsetcharset(okhttp3.Response response)protected voidexecute(Runnable command, boolean onIo)Map<String,Object>getBodyParas()StringgetBodyType()ObjectgetBound()获得被绑定的对象Map<String,FilePara>getFileParas()Map<String,String>getHeaders()获取请求任务的头信息Map<String,Object>getPathParas()ObjectgetRequestBody()StringgetTag()获取请求任务的标签StringgetUrl()获取请求任务的URL地址Map<String,Object>getUrlParas()booleanisAsyncHttp()booleanisSyncHttp()booleanisTagged(String tag)标签匹配 判断任务标签与指定的标签是否匹配(包含指定的标签)booleanisWebsocket()CnextOnIO()下一个回调在IO线程执行Cnothrow()设置在发生异常时不向上抛出,设置后: 异步请求可以在异常回调内捕获异常,同步请求在返回结果中找到该异常protected okhttp3.CallprepareCall(String method)protected okhttp3.RequestprepareRequest(String method)protected voidregisteTagTask(Cancelable canceler)protected voidremoveTagTask()CsetBodyPara(Object body)设置 请求报文体CsetOnProcess(OnCallback<Process> onProcess)设置报文体发送进度回调CsetRange(long rangeStart)设置Range头信息 表示接收报文体时跳过的字节数,用于断点续传CsetRange(long rangeStart, long rangeEnd)设置Range头信息 设置接收报文体时接收的范围,用于分块下载CskipPreproc()指定该请求跳过任何预处理器(包括串行和并行)CskipSerialPreproc()指定该请求跳过任何串行预处理器CstepBytes(long stepBytes)设置进度回调的步进字节,默认 8K(8192) 表示每接收 stepBytes 个字节,执行一次进度回调CstepRate(double stepRate)设置进度回调的步进比例 表示每接收 stepRate 比例,执行一次进度回调Ctag(String tag)protected booleantimeoutAwait(CountDownLatch latch)protected HttpResulttimeoutResult()protected HttpResult.StatetoState(IOException e)
-
-
-
构造器详细资料
-
HttpTask
public HttpTask(com.ejlchina.okhttps.internal.AbstractHttpClient httpClient, String urlPath)
-
-
方法详细资料
-
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- 标签- 返回:
- 是否匹配
-
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 实例
-
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 实例
-
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(OnCallback<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- 请求体,字节数组、字符串 或 Java对象(由 MsgConvertor 来序列化)- 返回:
- 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#mediaTypes }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, String type, String fileName, byte[] content)
添加文件参数(以 multipart/form-data 形式上传)- 参数:
name- 参数名type- 文件类型: 如 png、jpg、jpeg 等fileName- 文件名content- 文件内容- 返回:
- HttpTask 实例
-
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)
参数冲突校验
-
timeoutAwait
protected boolean timeoutAwait(CountDownLatch latch)
- 参数:
latch- CountDownLatch- 返回:
- 是否未超时:false 表示已超时
-
timeoutResult
protected HttpResult timeoutResult()
-
charset
public Charset charset(okhttp3.Response response)
-
execute
protected void execute(Runnable command, boolean onIo)
-
-