- java.lang.Object
-
- com.ejlchina.okhttps.HttpTask<C>
-
- 所有已实现的接口:
Cancelable
public abstract class HttpTask<C extends HttpTask<C>> extends Object implements Cancelable
Created by 周旭(Troy.Zhou) on 2020/3/11.
-
-
字段概要
字段 修饰符和类型 字段 说明 protected AbstractHttpClienthttpClientprotected booleannextOnIOprotected booleannothrowprotected booleanskipPreprocprotected booleanskipSerialPreproc
-
构造器概要
构造器 构造器 说明 HttpTask(AbstractHttpClient httpClient, String urlPath)
-
方法概要
所有方法 实例方法 具体方法 修饰符和类型 方法 说明 CaddBodyPara(String name, Object value)Body参数:放在Body里的参数CaddBodyPara(Map<String,?> params)Body参数:放在Body里的参数CaddFilePara(String name, byte[] content, String fileName)添加文件参数(以 multipart/form-data 形式上传)CaddFilePara(String name, File file)添加文件参数(以 multipart/form-data 形式上传)CaddFilePara(String name, InputStream stream, String fileName)添加文件参数(以 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, InputStream stream)添加文件参数(以 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 形式上传)CaddFilePara(String name, String type, String fileName, InputStream stream)添加文件参数(以 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)参数冲突校验CbasicAuth(String username, String password)Basic Auth 认证CbearerAuth(String token)Bearer Auth 认证Cbind(Object object)绑定一个对象CbodyType(String type)Stringboundary()Cboundary(String boundary)设置 MultipartBody 的边界符booleancancel()取消Ccharset(Charset charset)Charsetcharset(okhttp3.Response response)protected voidexecute(Runnable command, boolean onIo)com.ejlchina.data.ListMap<Object>getBodyParas()StringgetBodyType()ObjectgetBound()获得被绑定的对象com.ejlchina.data.ListMap<FilePara>getFileParas()com.ejlchina.data.ListMap<String>getHeaders()获取请求任务的头信息com.ejlchina.data.ListMap<Object>getPathParas()ObjectgetRequestBody()StringgetTag()获取请求任务的标签StringgetUrl()获取请求任务的URL地址com.ejlchina.data.ListMap<Object>getUrlParas()AbstractHttpClienthttpClient()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(Consumer<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)
-
-
-
字段详细资料
-
httpClient
protected final AbstractHttpClient httpClient
-
nothrow
protected boolean nothrow
-
nextOnIO
protected boolean nextOnIO
-
skipPreproc
protected boolean skipPreproc
-
skipSerialPreproc
protected boolean skipSerialPreproc
-
-
构造器详细资料
-
HttpTask
public HttpTask(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- 标签- 返回:
- 是否匹配
-
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 实例
-
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 实例
-
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()
-
-