TinyOK
轻量级okhttp请求库,okhttp接口使用方式,volley内存分配机制,并且有效避免内存分配溢出。
- 无依赖
- 体积小, 资源消耗小,
- 只针对Android优化
- 可以完美兼容okhttp使用方式
一、接入使用
- 仓库配置
工程根目录 gradle.build
allprojects {
repositories {
...
//补充如下仓库地址
maven {
url 'http://maven.onlyhello.cn:1111/repository/maven-releases'
}
/**
//此为快照版本仓库,仅供调试使用,正式发布时,强烈不建议使用!!!
maven {
url 'http://maven.onlyhello.cn:1111/repository/maven-snapshots'
}
**/
}
}
- 项目依赖
implementation 'cn.onlyhello.sdk:tinyok:1.0.0'
二、使用
- 异步请求
TinyOk tinyOk = new TinyOk();
Request request = new Request.Builder()
.url("http://www.baidu.com")
.build()
tinyOk.newCall(request)
.enqueue(new ResponseCallback() {
@Override
public void onFailure(Exception e) {
e.printStackTrace();
}
@Override
public void onResponse(Response res) {
Toast.makeText(MainActivity.this,
res.body().string(),
oast.LENGTH_SHORT).show();
}
});
- 同步请求
android 限制不可在主线程中使用网络请求,所以在使用中,请包裹一层线程处理。
TinyOk tinyOk = new TinyOk();
Request request = new Request.Builder()
.url("http://www.baidu.com")
.build();
final Response response = tinyOk.newCall(request)
.execute();
new Handler(context.getMainLooper()).post(() -> {
Toast.makeText(MainActivity.this,
response.body().string(),
Toast.LENGTH_SHORT).show();
});
- 类型转换
支持文件流、图片,文本,二进制转换。
public abstract class ResponseBody implements Closeable {
public abstract InputStream stream();
public abstract byte[] binary();
public abstract String string();
public abstract Bitmap bitmap();
}
- 高级
表单提交, 多重表单提交(支持文件上传)
表单提交
FormBody formBody = new FormBody.Builder()
.addEncoded("message", "hello_world")
.addEncoded("hello", "cccc")
.build();
Request request = new Request.Builder()
.url("http://192.168.150.14")
.post(formBody)
.build();
多重表单提交
FormBody formBody = new FormBody.Builder()
.addEncoded("message", "hello_world")
.addEncoded("hello", "cccc")
.build();
MultipartBody multipartBody = new MultipartBody.Builder()
.addPart( formBody)
.addFormDataPart("file1", file.getAbsolutePath())
.addFormDataPart("hello", "hi")
.build();
Request request = new Request.Builder()
.url("http://192.168.150.14")
.post(multipartBody)
.build();
网友评论