TinyOk接入文档

TinyOK

轻量级okhttp请求库,okhttp接口使用方式,volley内存分配机制,并且有效避免内存分配溢出。

  • 无依赖
  • 体积小, 资源消耗小,
  • 只针对Android优化
  • 可以完美兼容okhttp使用方式

demo下载

一、接入使用

  1. 仓库配置

工程根目录 gradle.build

allprojects {
    repositories {
       
        ...
        
        //补充如下仓库地址
        maven {
             url 'http://maven.onlyhello.cn:1111/repository/maven-releases'
        }
        
        /**
        //此为快照版本仓库,仅供调试使用,正式发布时,强烈不建议使用!!!
        maven {
            url 'http://maven.onlyhello.cn:1111/repository/maven-snapshots'
        }
        **/
    }
}

  1. 项目依赖
 implementation 'cn.onlyhello.sdk:tinyok:1.0.0'

二、使用

  1. 异步请求
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();
        }
    });
  1. 同步请求

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();
});
  1. 类型转换

支持文件流、图片,文本,二进制转换。

public abstract class ResponseBody implements Closeable {
    public abstract InputStream stream();
    
    public abstract byte[] binary();
    
    public abstract String string();

    public abstract Bitmap bitmap();
}

  1. 高级

表单提交, 多重表单提交(支持文件上传)

表单提交

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();  

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 用两张图告诉你,为什么你的 App 会卡顿? - Android - 掘金 Cover 有什么料? 从这篇文章中你...
    hw1212阅读 13,124评论 2 59
  • 什么是 Retrofit ? Retrofit是Square开发的一个Android和Java的REST客户端库。...
    帅气的猪猪阅读 1,528评论 0 0
  • 1、Handler: 1):系统Handler的创建过程及相关对象的创建:在ActivityThread的main...
    Steven_SHH阅读 869评论 0 5
  • 6.1 公钥密钥加密原理 6.1.1 基础知识 密钥:一般就是一个字符串或数字,在加密或者解密时传递给加密/解密算...
    AndroidMaster阅读 4,050评论 1 8
  • 渐变的面目拼图要我怎么拼? 我是疲乏了还是投降了? 不是不允许自己坠落, 我没有滴水不进的保护膜。 就是害怕变得面...
    闷热当乘凉阅读 4,362评论 0 13