String url = "https://api.reol.top/api_test";
QSHttp.post(url)//选择请求的类型
.header("User-Agent", "QsHttp/Android")//添加请求头
.path(2333, "video")//构建成这样的url https://api.reol.top/api_test/2233/video
.param("userName", 123456)//键值对参数
.param("password", "asdfgh")//键值对参数
.param(new Bean())//键值对参数
.toJsonBody()//把 params 转为json;application/json
.jsonBody(new Bean())//传入一个对象,会自动转化为json上传;application/json
.requestBody("image/jpeg", new File("xx.jpg"))//直接上传自定义的内容 自定义contentType (postjson内部是调用这个实现)
.param("bytes", new byte[1024])//传一个字节数组,multipart支持此参数
.param("file", new File("xx.jpg"))//传一个文件,multipart支持此参数
.toMultiBody()//把 params 转为multipartBody参数;multipart/form-data
.parser(parser)//自定义解析,由自己写解析逻辑
.jsonModel(Bean.class)//使用FastJson自动解析json,传一个实体类即可
.resultByBytes()//请求结果返回一个字节组 默认是返回字符
.resultByFile(".../1.txt")//本地路径 有此参数 请求的内容将被写入文件
.errCache()//开启这个 [联网失败]会使用缓存,如果有的话
.clientCache(24 * 3600)//开启缓存,有效时间一天
.timeOut(10 * 1000)
.openServerCache()//开启服务器缓存规则 基于okhttp支持
//构建好参数和配置后调用执行联网
.buildAndExecute(new ProgressCallback() {
//-----回调均已在主线程
@Override
public void onProgress(long var1, long var2, String var3) {
//进度回调 不需要监听进度 buildAndExecute()传 new HttpCallback(){...}即可
long i = var1 * 100 / var2;//百分比
//var3 在传文件的时候为文件路径 其他无意义
}
@Override
public void onSuccess(ResponseParams response) {
response.string();//获得响应字符串 *默认
response.file();//设置了下载 获得路径
response.bytes();//设置了返回字节组 获得字节组
response.headers();//获得响应头
//获得自动解析/自定义解析的结果
Bean b = response.parserObject();
b.getUserid();
}
@Override
public void onFailure(HttpException e) {
e.show();//弹出错误提示 网络连接失败 超时 404 解析失败 ...等
}
});