OkHttp的作用_为什么要使用OkHttp?(笔记)

x33g5p2x  于2022-05-16 转载在 其他  
字(0.9k)|赞(0)|评价(0)|浏览(410)

OkHttp的作用

OkHttp is an HTTP client。
如果是HTTP的方式想得到数据,就需要我们在页面上输入网址,如果网址没有问题,就有可能返回对应的String字符串,如果这个地址是返回字符串的话。
OkHttp是在idea代码中,通过调用它里边的方法,就可以实现调用该url,并将结果返回。

用大白话解释,就是你提供一个url地址,以及地址的参数,通过客户端Httpclient可以实现对该url地址进行调用,返回相对应的结果。

当然,这个地址是一个可以有实际返回的地址,就相当于一个接口,通过访问接口的路径,就可以返回相对应的结果,通过OkHttp的post方式得到的是一个字符串。

剩下的一些具体的东西,可以查看官网。
https://square.github.io/okhttp/

为什么要使用OkHttp?(笔记)

连接池

OkHttp实现了连接池的概念,即对于同一主机的多个请求,其实可以公用一个Socket连接,而不是每次发送完HTTP请求就关闭底层的Socket,这样就实现了连接池的概念。

线程池怎么复用

线程池的线程复用:就是任务在并不只执行创建时指定的firstTask第一任务,还会从任务队列的中自己主动取任务执行,而且是有/无时间限定的阻塞等待,保证线程的存活。

DNS

okhttp提供了自定义DNS解析的接口。

OKIO

OkIO增强了流于流之间的互动,使得当数据从一个缓冲区移动到另一个缓冲区时,可以不经过copy能达到。

1 速度快

  • okio采用了segment机制进行内存共享,极大减少copy操作带来的时间消耗,加快了读写速度
  • okio引入ByteString使其在byte[]与String之间转换速度非常快(ByteString内部以两种变量记录了同个数据byte[] data; transient String utf8;),空间换时间

2 稳定

  • okio提供了超时机制,不仅在IO操作上加上超时的判定,包括close,flush之类的方法中都有超时机制

3 内存消耗小

  • 虽然okio在byteString采用空间换时间,但是对内存也做极致优化,总体还是极大提高了性能
  • okio的segement机制进行内存复用,上传大文件时完全不用考虑OOM

相关文章