Retrofit详解
文章平均质量分 76
Retrofit实战,okhttp实战,各种神奇的操作
赵彦军
android开发工程师、烧菜能手、暖男
展开
-
Android Kotlin协程和Retrofit结合使用
Retrofit 正常使用先定义实体类class Repo(val id: String, val name: String)定义接口interface GitHubService { @GET("users/{user}/repos") fun listRepos(@Path("user") user: String?): Call<List<Repo>>}使用class MainActivity : AppCompatActivity() {原创 2021-06-21 14:16:56 · 1902 阅读 · 1 评论 -
Android 断点续传实现原理
下载原理在介绍断点续传之前,我们先说说下载的原理。代码示例用 OkHttp 作为示例。下载核心思路是把 responseBody 写入文件,核心代码如下:但是这种做法有个明显的问题,假如手机在下载文件的时候下载了80%,某些原因断网了,如果不支持断点续传,那就只有被迫重头开始下载。但是如果有断点续传的加持,就只需要下载最后 20% 的资源,避免重新下载。断点续传原理1、java.io.RandomAccessFile断点续传/下载需要使用到 java.io.RandomAccessFile 类原创 2021-10-25 17:36:19 · 1340 阅读 · 0 评论 -
Retrofit 注解参数详解
文章目录GET@Path@Query@QueryMapPOST@Bodyform表单1:@FormUrlEncodedform表单2:FormBody@Multipart上传文件对Retrofit已经使用了一点时间了,是时候归纳一下各种网络请求的service了。下面分为GET、POST、DELETE还有PUT的请求,说明@Path、@Query、@QueryMap、@Body、@Field的用法。添加依赖implementation 'com.squareup.retrofit2:retrofit原创 2021-10-28 15:54:54 · 1221 阅读 · 2 评论 -
Android Flow遇见Retrofit网络请求实践
方式一:RetrofitFlowCallAdapter添加 RetrofitFlowCallAdaptergithub地址:https://github.com/zyj1609wz/RetrofitFlowCallAdapter//添加maven地址allprojects { repositories { maven { url 'https://jitpack.io' } }}//添加依赖implementation 'com.github.zyj1609w原创 2021-12-08 11:52:17 · 3911 阅读 · 4 评论 -
Android复盘OkHttp HttpLoggingInterceptor造成的OOM
文章目录前言HttpLoggingInterceptor 简介下载文件请求阶段需要等很久以及OOM前言最近项目中发生了很多 oom,通过 oom 日志分析来看,都跟 okhttp 有关。经过艰难的分析定位,终于发现了造成 oom 的凶手HttpLoggingInterceptor 。原因是 HttpLoggingInterceptor 作为 okhttp 请求的过程的日志输出工具, 会把 ResponseBody 里面内容全部读出来,放在内存里。对于普通的网络请求,影响并不大。但是对于下载来说,它会把原创 2021-12-13 14:13:19 · 2587 阅读 · 2 评论 -
OkHttp ResponseBody没有关闭造成的内存泄漏
在网络请求中,ResponseBody 用完时需要关闭的。日常开发中,我们需要操作的不多,是因为常用的框架已经做好了。response.body().string() 的 string() 方法已经自动关闭资源。类似的方法还有:response.body().bytes() 也会自动关闭再比如常用的 GsonConverter ,会把 ResponseBody 转成 Bean 对象,也会自动关闭 。...原创 2021-12-13 14:45:09 · 3750 阅读 · 0 评论